Reset values of all controls using ASP.NET 2.0 and JavaScript
 
A very common requirement that comes up when building a form with lot of fields is resetting the controls back to their original state. In this article, we will explore how to do this task using both ASP.NET and Javascript. I assume you know how to build web pages in asp.net 2.0.
Using ASP.NET
Step 1: Drag and drop a few controls like textboxes, radio buttons, checkboxes etc. on to the form
Step 2: Add a button to the form and rename its Text property as “Clear all controls using ASP.NET”.  Rename its id property to be “btnClearASP”.
Step 3: Double click the button. In its click event, call a method that will clear the content of the controls on a Page.
C#
protected void btnClearASP_Click(object sender, EventArgs e)
    {
        ResetFormControlValues(this);
    }
VB.NET

ProtectedSub btnClearASP_Click(ByVal sender AsObject, ByVal e As EventArgs)

ResetFormControlValues(Me)

EndSub

Step 4: Write code for this method
C#
private void ResetFormControlValues(Control parent)
    {
        foreach (Control c in parent.Controls)
        {
            if (c.Controls.Count > 0)
            {
                ResetFormControlValues(c);
            }
            else
            {
                switch(c.GetType().ToString())
                {
                    case "System.Web.UI.WebControls.TextBox":
                        ((TextBox)c).Text = "";
                        break;
                    case "System.Web.UI.WebControls.CheckBox":
                        ((CheckBox)c).Checked = false;
                        break;
                    case "System.Web.UI.WebControls.RadioButton":
                        ((RadioButton)c).Checked = false;
                        break;
                 
                }              
            }
        }
    }
VB.NET

PrivateSub ResetFormControlValues(ByVal parent As Control)

ForEach c As Control In parent.Controls

If c.Controls.Count > 0 Then

ResetFormControlValues(c)

Else

SelectCase c.GetType().ToString()

Case "System.Web.UI.WebControls.TextBox"

CType(c, TextBox).Text = ""

Case "System.Web.UI.WebControls.CheckBox"

CType(c, CheckBox).Checked = False

Case "System.Web.UI.WebControls.RadioButton"

CType(c, RadioButton).Checked = False

EndSelect

EndIf

Next c

EndSub

The above function is a recursive function that clears the controls values on a page. I am not sure if this will work for a collection control like a RadioButtonList or similar. But I hope you have got some idea of how to write a function to reset contents on a page.
  Using Javascript
 Step 1: Drag and drop a few controls like textboxes, radio button, checkboxes etc. on to the form.
Step 2: Drag and drop a html button on the form. Rename it to “Clear All Controls Using Javascript”. Add an 'OnClick' attribute and point it to a function “ClearAllControls()” as shown below
<input id="Button1" type='button' onclick='ClearAllControls()' value='Clear All Controls Using Javascript'/>
Step 3: Write code for this function 'ClearAllControls()’. In the <head> section of the page, add a <script> tag and write the code for the function as shown below :
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Reset controls</title>
    <script language="javascript" type='text/javascript'>
 
        function ClearAllControls()
        {
              for (i=0; i<document.forms[0].length; i++)
              {
                    doc = document.forms[0].elements[i];
                    switch (doc.type)
                    {
                        case "text" :
                                doc.value = "";
                                break;
                          case "checkbox" :
                                doc.checked = false;
                                break;   
                          case "radio" :
                                doc.checked = false;
                                break;               
                          case "select-one" :
doc.options[doc.selectedIndex].selected = false;
                                break;                     
                          case "select-multiple" :
                                while (doc.selectedIndex != -1)
                                {
                                      indx = doc.selectedIndex;
                                      doc.options[indx].selected = false;
                                }
                                doc.selected = false;
                                break;
                                   
                          default :
                                break;
                    }
              }
        }
 
</script>
 
 
</head>
<body>
    <form id="form1" runat="server">
    <div>
// Other control come here
// Code courtesy frumbert
 
That’s it. Quiet simple, wasn’t it. I would encourage you to play with the code and add to it, by writing some of your own for the other controls on the page.
Happy coding!!
posted on 2008-04-02 15:39  josephshi  阅读(502)  评论(0编辑  收藏  举报