2014-05-10 5 views
0

내 문제는 AutoPostBack에서 Text_changed 이벤트가 발생할 때 범위 유효성 검사기가 유효성을 검사하지 않는다는 것입니다.RangeValidator는 AutoPostBack에서 유효성을 검사하지 않습니다.

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 
} 

변수 "의는"텍스트와 같이 허용되지 않습니다 일부 값을 얻는다 ("asdf을") 또는 범위 1-100 ("207에없는 번호 :

내 코드는 다음과 "예를 들면). 문제는 autopostback에서 범위 유효성 검사기를 작동시키는 방법입니까?

autostostback을 제거하면 rangevalidator가 작동합니다. 그러나 나는 그것을 제거 할 필요가 없습니다. 내가 textchange를 만들 때마다 페이지를 새로 고치고 싶지 않기 때문에 autopostback으로 작업하기를 원합니다.

답변

0

나는 직접 대답을 발견했다. 이 대답은 :

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