首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >intercept __doPostBack函数

intercept __doPostBack函数
EN

Stack Overflow用户
提问于 2013-05-21 21:22:42
回答 1查看 1.3K关注 0票数 0

根据此post,您可以通过覆盖此函数__doPostBack来拦截post,但它不起作用。如果我查看生成的源代码,我无法看到应该自动生成的函数,并导致asp.net进行回发。

这个函数在哪里?我该如何拦截它呢?

我使用的是asp.net 4和vs 2012

Default.aspx

代码语言:javascript
复制
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

    <script>
        //breaks here as it cant find __doPostBack
        var __original = __doPostBack;
        __doPostBack = myFunction();

        function myFunction() {

            alert('intercept');

        }

    </script>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="TextBox1" runat="server" ></asp:TextBox>

        <asp:Button ID="Button1" runat="server" Text="Button" />
    </div>
    </form>
</body>
</html>

Default.aspx.vb

代码语言:javascript
复制
Partial Class _Default
    Inherits System.Web.UI.Page

    Protected Sub form1_Load(sender As Object, e As EventArgs) Handles form1.Load

    End Sub

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim txt As String = TextBox1.Text

    End Sub
End Class
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-21 22:38:24

ASP.NET按钮呈现一个<input type="submit" />以回发窗体,并且永远不会使用此方法。__doPostBack方法仅用于不是输入按钮的元素,这些输入按钮通常不会导致对服务器的POST操作。这是一个位于微软JavaScript文件中的函数,并且只在客户机上呈现出来。__doPostBack的常见用法是LinkButton控件、可能具有AutoPostBack="true"的控件等。

另外,可能会有一个电话打给WebForms_DoPostBack...与此类似的东西也会回发,但内部调用__doPostBack。

如果您试图防止单击按钮时回发,请附加到窗体的submit事件,并以这种方式取消回发操作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16671182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档