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 循環中再次調用自己.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM