Asp.Net中清空所有textbox的几种方法?

    用反射:    
    引入命名空间:using System.Reflection;  
    FieldInfo[] infos = GetType().GetFields( BindingFlags.Public | BindingFlags.NonPublic|BindingFlags.GetField |BindingFlags.Instance);      
    for(int i=0;i<infos.Length;i++)      
    {      
    if(infos[i].FieldType == typeof(TextBox))      
    {      
    ((TextBox)infos[i].GetValue(this)).Text = "";      
    }      
    }  
//使用js,好处是不用刷新页面:      
function ClearAllTextBox()      
{      
var obj=window.document.forms[0];      
for(i=0;i<obj.elements.length; i++)      
{      
var elem=obj.elements[i];      
if(elem)      
{      
if(elem.type=="text")      
{      
elem.value="";      
}      
}      
}      
}   
    function clearInfo(){//和上面这种类似只是将不清空的文本框ID放入allowtedExtension数组里   
               var flag;   
                var obj=window.document.forms[0];   
                var allowtedExtension=["txtPictureName","txtUpLoadBeginDate","txtUpLoadEndDate"];   
                for(var i=0;i<obj.length;i++){   
                      var elem=obj.elements[i];   
                   if(elem){//判断是否存在   
                         if(elem.type=="text"){   
                              for(var j=0;j<allowtedExtension.length;j++){   
                                var flag=true;   
                                 if(allowtedExtension[j]==elem.id){//判断ID数否是与数组中某个ID相等   
                                     flag=false;   
                                     break;   
                                 }   
                              }   
                               if(flag){   
                                     elem.value="";            
                               }   
                        }   
                     }   
                }    
                document.getElementById("ddlPicType").selectedIndex=0;//清空下拉框   
                document.getElementById("lblPicUpName").innerHTML="";//清空label   
          }  
    //最后一种用Jquery      
    function ClearText() {      
        $("input").each(function() {      
            $(this).val('');      
        });      
    }   

【说明】:

如果页面中有多个文本框,并且他们的命名没有规律的话,当我们想要实现重置方法,即将所有TextBox 文本框中的值清空的时候,使用一个循环语句循环清空页面中所有 TextBox 类型控件中的值是一个不错的选择

实现这个功能有两种方法,一种是通过 JavaScript 实现,另一种是通过后台程序代码实现:

【JavaScript 方法实现】:

函数代码如下:

function ClearTextBoxValue()

{

for(i=0;i<window.document.forms[0].elements.length;i++)

{

if(window.document.forms[0].elements[i].type=="text")

{

window.document.forms[0].elements[i].value="";

}

}

return false;

}

后台调用代码如下:

this.btnReset.Attributes.Add("onclick","return ClearTextBoxValue()");

【后台程序代码实现】:

处理方法如下:

private void FindButton(Control c)

{

if (c.Controls != null)

{

foreach(Control x in c.Controls)

{

if (x is TextBox)

{

((TextBox)x).Text="";

}

FindButton(x);

}

}

}

调用方法如下:

private void btnReset_Click(object sender, System.EventArgs e)

{

this.FindButton(this);

}

【说明】:

在后台代码实现中,如果遇到容器则需要递归调用,这就是为什么上面的代码中会有 foreach 循环中再次调用自己.