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

it2022-05-10  168

用反射: 引入命名空间: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 循环中再次调用自己.

转载于:https://www.cnblogs.com/LifeKingcn/archive/2012/11/03/2752243.html

相关资源:数据结构—成绩单生成器

最新回复(0)