ASP.net如何在textchanged事件中失效

时间:2014-01-23 12:53:33

标签: c# asp.net validation customvalidator

如何在textchanged事件中使页面无效。

我有一个简单的表单,包含文本框和要提交的按钮 如果输入的文本无效,我想禁用该按钮或停止提交。 因为我有一些db操作来检查内容的有效性,所以在textchanged事件中检查有效性。 如果我可以以某种方式使textchanged事件中的页面无效,那么它可能会更容易 请给我一些简单的方法来实现这一点 谢谢 Shomaail

2 个答案:

答案 0 :(得分:1)

我能够完美地解决自己的问题。我使用了customvalidator OnServerValidate Event

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.customvalidator.onservervalidate(v=vs.110).aspx

现在在我的TextChanged事件中,如果输入的数据不正确,我会显示警告,并且在我的提交按钮的button_click事件中,我调用Page.Validate(),随后调用与文本关联的每个自定义验证器的OnServerValidate事件处理程序框。

 protected void btnIssueItem_Click(object sender, EventArgs e)
    {
        Page.Validate();
        if (!Page.IsValid)
            return;
....
}


protected void tbRoomID_CustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
    {
        BAL bal = new BAL();
        args.IsValid = bal.GetRoomByRoomID(Int32.Parse(args.Value)).Count == 0 ? false : true;
    }

答案 1 :(得分:0)

您可以将Button Enabled Property设置为true,即:

<asp:TextBox runat="server" ID="txtData" OnTextChanged="txtData_TextChanged"
                                            AutoPostBack="true"></asp:TextBox>
 <asp:Button runat="server" ID="btnSave" OnClik="btnSave_Click"></asp:Button>

On Code Behid:

      protected void txtData_TextChanged(object sender, EventArgs e)
        {
           if(txtData.Text == "something")
           {
               btnSave.Enabled = True;
           }
           else
               btnSave.Enabled = False;
        }