Csharp/C#教程:如何拦截页面中的任何回发? – ASP.NET分享


如何拦截页面中的任何回发? – 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 
// Add this script tag within head tag

如果您想完全控制__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

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐