Introduction
When you have a Inventory/Online Adjustment claims website like I do which takes lot of data from users, you would need some function which clears out all the fields at one go.
Background
I am working on a web application which is more similar to make a claim form electronically. Instead of sending adjustment claim forms with lot of paper work, I am designing a web application which gathers all the fields that are necessary to complete a claim form. At one point of time, I was fed up with clearing the controls after user submits the form on website. Then comes the idea which made me dig more into this and finally brought me to write this tip. I have seen people clearing each control by assigning empty string. So I did some research and finally got this working.
//
Public Shared Function FlattenHierachy(ByVal root As Control) As Control()
Dim list As New List(Of Control)()
list.Add(root)
If root.HasControls() Then
For Each control As Control In root.Controls
list.AddRange(FlattenHierachy(control))
Next
End If
Return list.ToArray()
End Function
Private Sub ClearTextBoxes()
Dim allControls As Control() = FlattenHierachy(Page)
For Each control As Control In allControls
Dim textBox As TextBox = TryCast(control, TextBox)
If textBox IsNot Nothing Then
textBox.Text = ""
End If
Next
End Sub
Protected Sub ClearDropDowns()
ddlState.SelectedIndex = -1
ddlADState.SelectedIndex = -1
ddlDState.SelectedIndex = -1
End Sub