by Pieter Brinkman
15. April 2009 02:56
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
by Pieter Brinkman
30. January 2009 03:47
You can use a string array as datasource and view the string values by using the Container.DataItem property.
Code example
Codebehind:
string[] testData = {"1","two","3","4"};
rptDemo.DataSource = testData;
rptDemo.DataBind();
And in the .aspx:
<asp:Repeater runat="server" ID="rptDemo">
<ItemTemplate>
<%# Container.DataItem %>
</ItemTemplate>
</asp:Repeater>