ASP.NET CustomValidator未触发事件

时间:2016-11-01 19:56:22

标签: javascript c# asp.net telerik customvalidator

我有一个页面,下拉列表(Telerik RadComboBox)控件要验证。

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

这是CustomValidator:

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

这是LinkBut​​ton:

<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(&#34; defGroup&# 34;),它总是返回true,并且不显示警报。

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

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

3 个答案:

答案 0 :(得分:1)

发现客户端上的Page_Validators列表也是空的(它应该包含所有的asp.net验证器),它引导我进入&#34;解决方案&#34;:.net 4.5有一个&#39;不相容性&#39;当你放一个 ScriptManager 并且你也使用jQuery&gt; 1.9 ...或者我必须在Global.asax中使用ScriptResourceMapping添加js libs

BTW要修复它,只需使用旧的验证样式在web.config中添加密钥设置:

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

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

答案 1 :(得分:-1)

尝试在CustomValidator中添加ControlToValidate:

答案 2 :(得分:-2)

你缺少缺少&#34; ControlToValidate&#34; CustomValidator中的属性添加,或者您可以在web.config文件中添加密钥设置以使其正常工作。