【问题标题】:asp validation controls not firing after ajaxrequest been called调用 ajaxrequest 后,asp 验证控件未触发
【发布时间】:2014-04-05 21:46:11
【问题描述】:
Asp 验证控件在 ajaxrequest 被调用后未触发。
我正在使用以下代码调用函数来刷新网格。
window['My Grid Client ID'].AjaxRequest('My Grid Unique ID', 'Rebind');
Grid 刷新后,第一次在提交按钮的click 上未触发验证。下次点击它工作正常。
希望这是由于ajax 的问题。!!
如果有人遇到这种情况请回复...
【问题讨论】:
标签:
javascript
asp.net
ajax
validation
telerik
【解决方案1】:
正如您提到的,您使用的是Telerik。我建议您使用下面的代码而不是AjaxRequest 来rebind 网格,这将来自ClientSide 的Rebind 网格。
<telerik:RadCodeBlock runat="server">
<script type="text/javascript">
function refreshGrid() {
var grid = $find("<%=RadGrid1.ClientID%>");
var masterTableView = grid.get_masterTableView();
masterTableView.fireCommand("Rebind");
}
</script>
</telerik:RadCodeBlock>
如需更多帮助,您可以使用以下链接
这不会使用任何AjaxRequest 来绑定网格,也不会影响您的任何Validation 功能。
希望这会有所帮助..!!!
【解决方案2】:
您使用什么验证?如果它是自定义验证,并且您的 JavaScript 代码在您使用 ajax 请求加载的用户控件中,则该脚本实际上不会存在于浏览器中。将其包装在 RadScriptBlock 控件中或使用 ScriptManager.RegisterClientScriptBlock 方法使其在页面上运行。
此外,请确保您为所有验证器设置了正确的 ValidationGroup 设置。如果某些提交按钮与 AJAX 一起出现,如果您没有定义组,这可能会破坏您现有的页面。