![](/img/trans.png)
[英]Asp.NET check if CustomValidator is valid clientside after postback
[英]In ASP.NET, how to hook postback event on clientside
我想在客户端的每个回发上运行一个代码。 有什么活动或什么可以做到吗?
如果您只是处理表单的提交事件,则不一定会捕获每个__doPostBack()
。 例如,触发 UpdatePanel 刷新的__doPostBack()
不会提交表单。
您可以确保了解每次调用 __doPostBack() 的一种方法是重新定义它:
var oldDoPostBack = __doPostBack;
function __doPostBack(eventTarget, eventArgs) {
// Your code here, which will execute before __doPostBack,
// and could conditionally cancel it by returning false.
oldDoPostBack(eventTarget, eventArgs);
}
只需确保在页面末尾附近或在 document.ready 类型事件中执行此操作,这样您就可以确保在尝试执行此操作时定义了 __doPostBack。
asp.net 的工作方式是整个页面是一个表格。 因此,要在提交表单之前在客户端做一些事情(这实际上是回发事件),我会附加到表单提交事件,返回 false 以防止提交表单,执行客户端代码,然后提交使用 javascript 形成。
您可以使用 jQuery 轻松做到这一点: http://api.jquery.com/submit/
如果您需要更多帮助,请告诉我。
Dave Ward 的回答几乎对我有用,但无论出于何种原因(Telerik?),它创建了对 __doPostBack 的无限循环调用。 因此,我使用了以下代码:
function __doPostBack_Custom(eventTarget, eventArgs) {
// Your code here, which will execute before __doPostBack,
// and could conditionally cancel it by returning false.
oldDoPostBack(eventTarget, eventArgs);
}
var oldDoPostBack = window.__doPostBack;
window.__doPostBack = __doPostBack_Custom;
每个 aspx 页面上都有一个 javascript __doPostBack() 方法,由 ASP.NET 生成。 所以你可以使用它
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.