customevalidator 在验证期间未按预期工作
customevalidator is not working as expected during validation
您好,我正在使用自定义验证器根据复选框选中状态验证文本框..
如果复选框选中为 false 并且文本框为空,它应该会抛出一个错误,如所需的 CertID 那样...我在此方法中放置了断点 "cvCertId_OnServerValidate" 当我单击提交按钮时它根本没有命中。 ..
但是当我点击提交按钮时我无法得到错误..
这是我的 aspx 代码
<div class="SearchLine">
<div class="Firstlbl">
<asp:Label ID="Lbl1" runat="server" Text=" CertificateID *" Font-Bold="True"></asp:Label>
</div>
<div class="firstTxtBox">
<asp:TextBox ID="txtCertificateID" runat="server" Width="300px"></asp:TextBox>
</div>
<div class="rfvValidation">
<asp:CustomValidator ID="cvCertId" runat="Server" OnServerValidate="cvCertId_OnServerValidate" Display="Dynamic" ValidationGroup="Validate" CssClass="validationerror"></asp:CustomValidator>
</div>
</div>
<div class="SearchLine">
<div class="chkboxLine">
<asp:CheckBox ID="chkSerialNumber" runat="server" AutoPostBack="True" OnCheckedChanged="chkSerialNumber_CheckedChanged" />
</div>
<div class="Firstlbl">
<asp:Label ID="Lbl2" runat="server" Text="Serial Number *" Font-Bold="True"></asp:Label>
</div>
<div class="firstTxtBox">
<asp:TextBox ID="txtCertificateSerialNumber" runat="server" Width="300px" Enabled="false"></asp:TextBox>
</div>
<div class="rfvValidation">
<asp:CustomValidator ID="cvSerialNumber" runat="Server" OnServerValidate="cvSerialNumber_OnServerValidate" Display="dynamic" ValidationGroup="Validate" CssClass="validationerror"></asp:CustomValidator>
</div>
</div>
<div class="SearchResetControls">
<asp:Button ID="btnSubmit" runat="server" Text="Re-Assign"
onclick="btnSubmit_Click" ValidationGroup="Validate"/>
</div>
<div runat="server" id="divMessage">
<asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>
</div>
这是我的aspx.cs代码
protected void cvCertId_OnServerValidate(object sender, ServerValidateEventArgs args)
{
if (chkSerialNumber.Checked == false)
{
string certID = txtCertificateID.Text;
if (certID == string.Empty)
{
((CustomValidator)sender).ErrorMessage = "Required Certificate Id";
args.IsValid = false;
}
}
}
protected void cvSerialNumber_OnServerValidate(object sender, ServerValidateEventArgs args)
{
if (chkSerialNumber.Checked == true && string.IsNullOrEmpty(txtCertificateSerialNumber.Text))
{
((CustomValidator)sender).ErrorMessage = "Required Certificate Serial Number";
args.IsValid = false;
}
}
请问有人帮忙吗
非常感谢....
您需要删除自定义验证控件中的 ControlToValidate 属性。并添加 Text 和 ErrorMessage 属性。例如,
<div class="firstTxtBox">
<asp:TextBox ID="txtCertificateSerialNumber" runat="server" Width="300px" Enabled="false"></asp:TextBox>
</div>
<div class="rfvValidation">
<asp:CustomValidator ID="cvSerialNumber" runat="Server" OnServerValidate="cvSerialNumber_OnServerValidate" Display="dynamic" ValidationGroup="Validate" CssClass="validationerror" Text="Error" ErrorMessage="This is error message"></asp:CustomValidator>
</div>
您好,我正在使用自定义验证器根据复选框选中状态验证文本框..
如果复选框选中为 false 并且文本框为空,它应该会抛出一个错误,如所需的 CertID 那样...我在此方法中放置了断点 "cvCertId_OnServerValidate" 当我单击提交按钮时它根本没有命中。 ..
但是当我点击提交按钮时我无法得到错误..
这是我的 aspx 代码
<div class="SearchLine">
<div class="Firstlbl">
<asp:Label ID="Lbl1" runat="server" Text=" CertificateID *" Font-Bold="True"></asp:Label>
</div>
<div class="firstTxtBox">
<asp:TextBox ID="txtCertificateID" runat="server" Width="300px"></asp:TextBox>
</div>
<div class="rfvValidation">
<asp:CustomValidator ID="cvCertId" runat="Server" OnServerValidate="cvCertId_OnServerValidate" Display="Dynamic" ValidationGroup="Validate" CssClass="validationerror"></asp:CustomValidator>
</div>
</div>
<div class="SearchLine">
<div class="chkboxLine">
<asp:CheckBox ID="chkSerialNumber" runat="server" AutoPostBack="True" OnCheckedChanged="chkSerialNumber_CheckedChanged" />
</div>
<div class="Firstlbl">
<asp:Label ID="Lbl2" runat="server" Text="Serial Number *" Font-Bold="True"></asp:Label>
</div>
<div class="firstTxtBox">
<asp:TextBox ID="txtCertificateSerialNumber" runat="server" Width="300px" Enabled="false"></asp:TextBox>
</div>
<div class="rfvValidation">
<asp:CustomValidator ID="cvSerialNumber" runat="Server" OnServerValidate="cvSerialNumber_OnServerValidate" Display="dynamic" ValidationGroup="Validate" CssClass="validationerror"></asp:CustomValidator>
</div>
</div>
<div class="SearchResetControls">
<asp:Button ID="btnSubmit" runat="server" Text="Re-Assign"
onclick="btnSubmit_Click" ValidationGroup="Validate"/>
</div>
<div runat="server" id="divMessage">
<asp:Label ID="lblMessage" runat="server" Text=""></asp:Label>
</div>
这是我的aspx.cs代码
protected void cvCertId_OnServerValidate(object sender, ServerValidateEventArgs args)
{
if (chkSerialNumber.Checked == false)
{
string certID = txtCertificateID.Text;
if (certID == string.Empty)
{
((CustomValidator)sender).ErrorMessage = "Required Certificate Id";
args.IsValid = false;
}
}
}
protected void cvSerialNumber_OnServerValidate(object sender, ServerValidateEventArgs args)
{
if (chkSerialNumber.Checked == true && string.IsNullOrEmpty(txtCertificateSerialNumber.Text))
{
((CustomValidator)sender).ErrorMessage = "Required Certificate Serial Number";
args.IsValid = false;
}
}
请问有人帮忙吗
非常感谢....
您需要删除自定义验证控件中的 ControlToValidate 属性。并添加 Text 和 ErrorMessage 属性。例如,
<div class="firstTxtBox">
<asp:TextBox ID="txtCertificateSerialNumber" runat="server" Width="300px" Enabled="false"></asp:TextBox>
</div>
<div class="rfvValidation">
<asp:CustomValidator ID="cvSerialNumber" runat="Server" OnServerValidate="cvSerialNumber_OnServerValidate" Display="dynamic" ValidationGroup="Validate" CssClass="validationerror" Text="Error" ErrorMessage="This is error message"></asp:CustomValidator>
</div>