2010-06-02 33 views
3

什麼是在運行時使用c#清除asp.net表單最簡單的方法。在運行時清除asp.net表單

感謝 SP

+0

你所說的 「在運行時」 是什麼意思?這是否意味着用戶正在查看該頁面? – 2010-06-02 16:24:43

+1

如果你正在談論做這個客戶端,然後使用form.reset() – 2010-06-02 17:36:38

+0

@Jeff舒馬赫忘了那一個....另一種選擇是把復位按鈕在表格 – ggonsalv 2010-06-03 03:44:56

回答

0

我已經使用以下JS/C#以清除的形式。

C#添加的JS調用的onload

Page.ClientScript.RegisterStartupScript(typeof(WebForm3), "ClearPage", "ClearForm();", true); 

的JS以清除表單

function ClearForm() { 
      var AllControls = document.getElementById('ctl00_ContentPlaceHolder1_PnlAll') 
      var Inputs = AllControls.getElementsByTagName('input'); 
      for (var y = 0; y < Inputs.length; y++) { 
       // define element type 
       type = Inputs[y].type 
       // alert before erasing form element 
       //alert('form='+x+' element='+y+' type='+type); 
       // switch on element type 
       switch (type) { 
        case "text": 
        case "textarea": 
        case "password": 
         //case "hidden": 
         Inputs[y].value = ""; 
         break; 



       } 
      } 


     } 
1

我假設你要清除輸入框,下拉菜單等,這是可以做到在以下代碼的方式來recursivly清除所有數據。

foreach(var control in this.Controls) 
{ 
    ClearControl(control); 
} 

和遞歸函數

private void ClearControl(Control control) 
{ 
    var textbox = control as TextBox; 
    if (textbox != null) 
     textbox.Text = string.Empty; 

    var dropDownList = control as DropDownList; 
    if (dropDownList != null) 
     dropDownList.SelectedIndex = 0; 

    // handle any other control // 

    foreach(Control childControl in control.Controls) 
    { 
     ClearControl(childControl); 
    } 
} 
+0

感謝您的這一點,我無法得到它作爲即時通訊使用HTML控件,我將文本框切換到htmlinputtext,但仍然失敗。 我已經用一些js來清除表格 感謝您的回覆 Sp – Steven 2010-06-03 08:18:03