我的问题是范围验证器在AutoPostBack上发生Text_changed事件时没有验证。
我的代码如下:
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 :(得分:0)
void textbox_TextChanged(object sender, EventArgs e)
{
Page.Validate()
if(Page.IsValid)
{
s=((TextBox)sender).Text
}
}