2009-10-29 66 views
1

我想禁用ASP.Net驗證器,使其禁用回發。禁用ASP.NEt Validator,使其禁用回發

我使用

$('.c_MyValidator').each(function() { 
    ValidatorEnable(document.getElementById($(this).attr('id')), false); 
}); 

但是當頁面回傳禁用客戶端上的驗證,我的網頁仍然是無效的。 我在UserControl(.ascx)中,所以沒有爲我覆蓋Validate()。

如何禁用驗證器,使其在頁面回發時啓用= false。

任何想法?

+1

確認通常是您希望在回發時發生的情況。你能解釋一下別有用心的動機嗎? – 2009-10-29 21:52:50

+0

是啊當然..以及有類似的整個情況的小版本,我點擊一個複選框「啓用/禁用日期」,它顯示並隱藏日期文本框輸入日期或不。所以我在該日期的文本框中獲得了必需的字段驗證器。所以如果checbox沒有被檢查,驗證器需要運行。 – LibraRocks 2009-10-29 22:30:23

回答

2

您的場景here有一個示例。基本上在服務器端代碼中,將驗證器的enabled屬性設置爲複選框的checked屬性(以及調用客戶端ValidatorEnable)。使用用戶控件的Page_Load事件,因爲沒有Validate方法。

public partial class CheckboxAndValidator : System.Web.UI.UserControl 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     validator.Enabled = cbControlValidation.Checked; 
    } 
} 

什麼,你不能做的是驗證在Page_Load事件。這太早了,需要在頁面生命週期的後期完成,一旦用戶控件完成了一些操作。