2014-05-10 56 views
0

我的問題是,範圍驗證程序無法驗證AutoPostBack上發生Text_changed事件。RangeValidator不驗證自動回覆

我的代碼如下:

public string s; 
protected void Page_Load(object sender, EventArgs e) 
{... 
     TextBox textbox = new TextBox(); 
     textbox.TextChanged += textbox_TextChanged; 
     textbox.ID = p.IDProduct.ToString(); 
     textbox.AutoPostBack = true; 

     RangeValidator rangev = new RangeValidator(); 
     rangev.ControlToValidate = p.IDProduct.ToString(); 
     rangev.Type = ValidationDataType.Integer; 
     rangev.MinimumValue = "0"; 
     rangev.MaximumValue = "100"; 
     rangev.ErrorMessage = "*"; 

...} 

void textbox_TextChanged(object sender, EventArgs e) 
{ 
     s=((TextBox)sender).Text 
} 

變量「s」獲取不允許一些值,比如文本(「ASDF」)或不在範圍1-100(「207號「 例如)。問題是,如何使範圍驗證器在autopostback上工作?

如果我刪除autopostback,rangevalidator的作品。但我不需要刪除它。我希望它能與autopostback一起工作,因爲我不想在每次換行時刷新頁面。

回答

0

我自己發現了答案。這就是答案:

void textbox_TextChanged(object sender, EventArgs e) 
{ 
     Page.Validate() 
     if(Page.IsValid) 
     { 
      s=((TextBox)sender).Text 
     } 
}