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