我想在客户端的每个回发上运行代码。是否有事件或其他事情要做?
答案 0 :(得分:3)
如果您只是处理表单的提交事件,则不一定会捕获每个__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。
答案 1 :(得分:1)
asp.net的工作方式是整个页面是一个表单。因此,在提交表单之前做客户端的事情(这是回发事件的确是什么),我会附加到表单提交事件,返回false以防止提交表单,执行客户端代码然后提交使用javascript形成。
您可以轻松地使用jQuery执行此操作:http://api.jquery.com/submit/
如果您需要更多帮助,请与我联系。
答案 2 :(得分:1)
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;
答案 3 :(得分:-1)
每个aspx页面都有一个javascript __doPostBack()方法,由ASP.NET生成。所以你可以使用它