【发布时间】:2014-08-01 11:11:19
【问题描述】:
我在我的页面中添加了一个CustomValidator,用于验证服务器端的输入。
验证工作正常,并在无效时在屏幕上显示错误消息,但如果我将其更改为在validationsummary 内显示,页面设置为isvalid=false,但validationsummary 永远不会显示。
我还有其他验证器(RegularExpression、RequiredField)在屏幕上工作正常,直到我更改 CustomValidator 的查看模式,此时它们也不显示。
我已经尝试了所有现有线程,包括这个(下),但建议是使用更新面板作为包装器。问题是您不能在其中包含控件,所以我不知道如何测试该建议:
Why The error message for custom validator is not shown in message box?
这是 HTML 代码:
<asp:CustomValidator ID="validProductCode" runat="server"
ControlToValidate="txtProductCode"
OnServerValidate="ValidateProductCode"
ErrorMessage="The product code entered is invalid"
Display="None"
ValidationGroup="IWS"/>
<asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="True" ShowSummary="False" ValidationGroup="IWS" />
这是 C#
protected void ValidateProductCode(object source, ServerValidateEventArgs args)
{
try
{
using (SqlConnection conn = new SqlConnection(GetConnection.GetConnectionString()))
using (SqlCommand sqlComm = new SqlCommand("PL_ProductCodes_FillScreen", conn))
{
sqlComm.Parameters.AddWithValue("@SiteID", ddlSiteId.SelectedValue);
sqlComm.Parameters.AddWithValue("@ProductCode", txtProductCode.Text);
sqlComm.Parameters.AddWithValue("@IsOntext", 1);
sqlComm.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(sqlComm);
DataSet ds = new DataSet();
da.Fill(ds);
args.IsValid = ds.Tables[0].Rows.Count != 0;
}
}
catch (SqlException ex)
{
ExceptionHandling.SQLException(ex, constPageID, constIsSiteSpecific);
}
}
【问题讨论】:
-
其他验证器有 ValidationGroup = "IWS"?您是否还在启动验证的控件(Button、LinkButton 等)上设置了此 ValidationGroup?
-
是的,我已经做到了。我添加了尝试和不使用该组,结果是相同的。一旦我将 customvalidator 更改为 display=none,它就会停止。
-
@jbutler483 这是一个完全不同的问题和不同的验证器。该用户想知道为什么该消息不显示,但这是因为未设置错误消息。
-
这可能会有所帮助:stackoverflow.com/questions/811734/…
标签: c# asp.net validation webforms