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验证组的所有验证器都无效,我试图阻止回发。
发现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中添加一个键设置。