ASP.. NET CustomValidator不触发事件

本文关键字:事件 NET CustomValidator ASP | 更新日期: 2023-09-27 18:15:54

我有一个带有下拉列表(Telerik RadComboBox)控件的页面来验证。

我放置了一个CustomValidator来验证用户是否从列表中选择了某些内容。然后有一个LinkButton来提交选择。

这是CustomValidator:

<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ClientValidationFunction="validateCombo" ValidateEmptyText="true"
ErrorMessage="You must select an item with even value"
ValidationGroup="defGroup">

这是LinkButton:

<asp:LinkButton ID="LnkInsertOrder" runat="server" Text="Inserisci Ordine" OnClick="LnkInsertOrder_Click" CausesValidation="true" ValidationGroup="defGroup" CssClass="btn btn-lg btn-info"> </asp:LinkButton>

,这里是客户端函数,我使用的测试:

function validateCombo(source, args) {
            alert('validateCombo'); //is never shown!
            args.IsValid = false;   //fake validation...
}

validateCombo永远不会被调用,因为我从来没有看到过警报,即使我尝试从js控制台手动调用。net框架函数Page_ClientValidate("defGroup"),它总是返回true,并且不显示警报。

当我按下链接按钮时,它执行回发和属性Page。isValid为真

当用户按下链接按钮时,如果defGroup验证组的所有验证器都无效,我试图阻止回发。

ASP.. NET CustomValidator不触发事件

发现Page_Validators列表在客户端是空的(它应该包含所有的asp.net验证器),它已经引导我的"解决方案":.net 4.5有一个'不兼容'的某种当你把一个ScriptManager,你也使用jQuery>1.9…或者我可以在Global.asax

中使用ScriptResourceMapping添加js库

顺便说一句,要解决这个问题,只需使用旧的验证样式,在web中添加一个键设置。配置:

<appSettings>
 <add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>

这对我来说听起来很疯狂,但是当我添加了这一行后,一切都开始工作了

尝试在您的CustomValidator中添加ControlToValidate:

您缺少 CustomValidator中缺失的"ControlToValidate"属性添加它,或者您可以在web中添加一个键设置。