【发布时间】:2011-11-25 13:23:56
【问题描述】:
所以这就是问题所在。我在一个带有 CustomValidator 的 .ascx 控件中有一个 DropDownList。此控件具有由 PageLoad 中的属性设置的 ValidationGroup。触发验证的按钮位于另一个使用此控件的文件中。问题是服务器端验证永远不会被触发。我在其中添加断点,它们永远不会被击中。有人对发生的事情有任何想法吗?这是代码:
Dropdown.ascx:
<asp:DropDownList ID="ddlQuestions" runat="server">
</asp:DropDownList>
<asp:CustomValidator runat="server" ID="cvddlQuestions" OnServerValidate="cvddlQuestions_ServerValidate"
ErrorMessage="* Parent question is required." ValidateEmptyText="true" Display="Dynamic" />
</p>
</div>
后面的代码:
protected void Page_Load(object sender, EventArgs e)
{
cvddlQuestions.ValidationGroup = ValidationGroup;
//ValidationGroup is a property in the parent file that is being set on PageLoad
}
protected void cvddlQuestions_ServerValidate(object sender, ServerValidateEventArgs args)
{
args.IsValid = false;// (ddlQuestions.SelectedValue != "-1");
}
在使用 Dropdown.ascx 的父文件中,我有这个按钮:
<asp:LinkButton ID="btnQuestionAdd" runat="server" OnClick="btnQuestionAdd_Click"
ValidationGroup="editQuestion" CommandName="add" />
父文件后面的代码:
protected void btnQuestionAdd_Click(object sender, EventArgs e)
{
Page.Validate("editQuestion");
if (Page.IsValid) //ALWAYS SEEMS TO BE TRUE
{
//Do something
}
}
当我将客户端验证函数添加到 customvalidator 时,它会触发没有问题。但页面总是返回有效。我尝试添加 ControlToValidate 并设置 ValidateEmptyText="true" ,但仍然得到相同的结果。我错过了什么?
【问题讨论】:
标签: c# asp.net drop-down-menu customvalidator