如何拦截页面中的任何回发? – ASP.NET
我希望拦截当前页面中的任何回发。 我想在回发服务之前做一些自定义操作。 任何想法如何做到这一点?
您可以采取一些措施来拦截客户端上的回发。
__doPostBack函数如下所示:
function __doPostBack(eventTarget, eventArgument) { if (!theForm.onsubmit || (theForm.onsubmit() != false)) { theForm.__EVENTTARGET.value = eventTarget; theForm.__EVENTARGUMENT.value = eventArgument; theForm.submit(); } }
请注意,在实际进行回发之前,它会调用“theForm.onsubmit()”。 这意味着如果您为表单分配一个onsubmit javascript函数,它将始终在每次回发之前调用。
或者,您实际上可以覆盖__doPostBack函数并将其替换为您自己的函数。 这是在ASP.Net 1.0天中使用的旧技巧。
var __original= __doPostBack; __doPostBack = myFunction();
这将用您自己的函数替换__doPostBack函数,您可以从新函数中调用原始函数。
使用以下选项
所有选项都适用于启用了ajax的表单和简单表单。
返回false以取消任何提交处理程序中的提交。
Page.ClientScript.RegisterOnSubmitStatement(Page.GetType(), "submit-handler", "alert("On PostBack");");
等价的javascript – 不要同时使用此代码与之前的代码
// Modify your form tag like this
如果您想完全控制__doPostBack,请将此脚本放在表单标记旁边
使用ASP.NET 4.0进行测试
要在页面执行之前获取回发,您可以创建HttpHandler并实现ProcessRequest
函数。
查看此Scott Hanselman链接,获取有关如何操作的好博客文章(包括示例代码)。
Page.IsPostBack是你的朋友。
您可以在表单的某个页面事件中检查回发。
如果你想在回发上做一些涉及创建控件或操纵viewstate的操作,那么你可能想要进入像Page_Init这样的早期事件。
试试这个:
protected void Page_Init(object sender, EventArgs e) { if (Page.IsPostBack) { //Check for your conditions here, if (Page.IsAsync) { //also you may want to handle Async callbacks too: } } }
不确定,但我认为你在寻找..
上述就是C#学习教程:如何拦截页面中的任何回发? – ASP.NET分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
if (Page.IsPostBack) { }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1009776.html