Every time a form is successful summited I need to clear all input-fields to the default values and give feedback to the user. I wrote a method ClearControl that can have a control as input parameter. This method will set the control based on his type back to the defaultvalue.
public static void ClearControl(Control control) { switch (control.GetType().Name) { case "TextBox": TextBox txtBox = (TextBox)control; txtBox.Text = ""; break; case "DropDownList": DropDownList ddl = (DropDownList)control; ddl.SelectedIndex = 0; break; case "CheckBox": CheckBox chk = (CheckBox)control; chk.Checked = false; break; case "CheckBoxList": CheckBoxList chkList = (CheckBoxList)control; foreach (ListItem li in chkList.Items) li.Selected = false; break; case "Panel": ClearFields((Panel)control); break; case "RadioButtonList": RadioButtonList rbl = (RadioButtonList)control; rbl.SelectedIndex = -1; break; } }
To use this method I wrote a method ‘ClearFields’ that accepts a View or Container control. You can add every type of control that has the .Controls property.
public static void ClearFields(Panel container) { foreach (Control control in container.Controls) { ClearControl(control); } } public static void ClearFields(View container) { foreach (Control control in container.Controls) { ClearControl(control); } }
When I have some time left I will try to implement the ClearFields Method as a ExtensionMethod.
Cheers,
Pieter
Hi Pieter,
Did you know that you can also achieve this with a view lines of jQuery? It might be faster then casting several Controls to the correct Control Type.
Hi Thijs,
Do you have some example code?
Cheers,
Pieter
It might be faster then casting several Controls to the correct Control Type.