调用 ajaxrequest 后,asp 验证控件未触发
Posted
技术标签:
【中文标题】调用 ajaxrequest 后,asp 验证控件未触发【英文标题】:asp validation controls not firing after ajaxrequest been called 【发布时间】:2014-04-05 21:46:11 【问题描述】:Asp
验证控件在 ajaxrequest
被调用后未触发。
我正在使用以下代码调用函数来刷新网格。
window['My Grid Client ID'].AjaxRequest('My Grid Unique ID', 'Rebind');
Grid
刷新后,第一次在提交按钮的click
上未触发验证。下次点击它工作正常。
希望这是由于ajax
的问题。!!
如果有人遇到这种情况请回复...
【问题讨论】:
【参考方案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>
如需更多帮助,您可以使用以下链接
RadGrid Client side API RadGrid Client object这不会使用任何AjaxRequest
来绑定网格,也不会影响您的任何Validation
功能。
希望这会有所帮助..!!!
【讨论】:
【参考方案2】:您使用什么验证?如果它是自定义验证,并且您的 JavaScript 代码在您使用 ajax 请求加载的用户控件中,则该脚本实际上不会存在于浏览器中。将其包装在 RadScriptBlock 控件中或使用 ScriptManager.RegisterClientScriptBlock 方法使其在页面上运行。
此外,请确保您为所有验证器设置了正确的 ValidationGroup 设置。如果某些提交按钮与 AJAX 一起出现,如果您没有定义组,这可能会破坏您现有的页面。
【讨论】:
以上是关于调用 ajaxrequest 后,asp 验证控件未触发的主要内容,如果未能解决你的问题,请参考以下文章
[转]验证发生前无法调用 Page.IsValid。应在 CausesValidation=True 且已启动回发的控件