ASP.NET CustomValidator 未触发事件
ASP.NET CustomValidator not firing the event
我有一个包含要验证的下拉列表 (Telerik RadComboBox) 控件的页面。
我已经放置了一个 CustomValidator 来验证用户是否从列表中选择了一些东西。
然后有一个LinkButton提交选择。
这是自定义验证器:
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ClientValidationFunction="validateCombo" ValidateEmptyText="true"
ErrorMessage="You must select an item with even value"
ValidationGroup="defGroup">
这是链接按钮:
<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"),它始终 returns 为真,并且不会显示警报。
当我按下 link 按钮时,它执行回发并且 属性 Page.isValid 为真。
如果 defGroup 验证组的所有验证器均无效,我将尝试在用户按下 link 按钮时停止回发。
尝试在您的 CustomValidator 中添加您的 ControlToValidate:
发现客户端上的 Page_Validators 列表也是空的(它应该包含所有 asp.net 验证器),它引导我到 "solution":.net 4.5 有当您放置 ScriptManager 并且您还使用 jQuery >1.9 时,某种 'incompatibility'... 或者我可能必须使用 ScriptResourceMapping 添加 js 库Global.asax
顺便说一下,要修复它,只需使用旧的验证样式在 web.config 中添加一个键设置:
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
这对我来说听起来很疯狂,但是当我添加这一行时,一切都开始工作了
您缺少 缺少 "ControlToValidate" 属性 inside CustomValidator 添加那个,或者您可以在 web.config 文件中添加一个键设置来实现它正在工作。
我有一个包含要验证的下拉列表 (Telerik RadComboBox) 控件的页面。
我已经放置了一个 CustomValidator 来验证用户是否从列表中选择了一些东西。 然后有一个LinkButton提交选择。
这是自定义验证器:
<asp:CustomValidator
ID="CustomValidator1"
runat="server"
ClientValidationFunction="validateCombo" ValidateEmptyText="true"
ErrorMessage="You must select an item with even value"
ValidationGroup="defGroup">
这是链接按钮:
<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"),它始终 returns 为真,并且不会显示警报。
当我按下 link 按钮时,它执行回发并且 属性 Page.isValid 为真。
如果 defGroup 验证组的所有验证器均无效,我将尝试在用户按下 link 按钮时停止回发。
尝试在您的 CustomValidator 中添加您的 ControlToValidate:
发现客户端上的 Page_Validators 列表也是空的(它应该包含所有 asp.net 验证器),它引导我到 "solution":.net 4.5 有当您放置 ScriptManager 并且您还使用 jQuery >1.9 时,某种 'incompatibility'... 或者我可能必须使用 ScriptResourceMapping 添加 js 库Global.asax
顺便说一下,要修复它,只需使用旧的验证样式在 web.config 中添加一个键设置:
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
这对我来说听起来很疯狂,但是当我添加这一行时,一切都开始工作了
您缺少 缺少 "ControlToValidate" 属性 inside CustomValidator 添加那个,或者您可以在 web.config 文件中添加一个键设置来实现它正在工作。