【问题标题】:intercept __doPostBack function拦截 __doPostBack 函数
【发布时间】:2013-05-21 13:22:41
【问题描述】:

根据这个post,你可以通过覆盖这个函数__doPostBack来拦截帖子,但它不会起作用。如果我查看生成的源代码,我将看不到自动生成的函数并导致 asp.net 进行回发。

这个函数在哪里?以及如何拦截它?

我正在使用 asp.net 4 和 vs 2012

默认.aspx

<%@ 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>

默认.aspx.vb

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

【问题讨论】:

  • __doPostBack 函数应该在页面上有回发控件(如 asp:LinkBut​​ton)时自动生成。但是你为什么需要拦截呢?
  • 因为我无法通过 jquery 或按钮单击或表单提交添加 return false
  • :) 就像:-你为什么要杀死兔子? - 因为我不想杀猫。无论如何,您是否尝试将 LinkBut​​ton 添加到页面,例如警报 typeof(__doPostBack)。如果那是函数,则您的函数已成功自动生成,如果未定义,则否。因此,之后您可以拦截此功能并按照您提供的链接中的建议覆盖它。那你有什么问题?

标签: asp.net vb.net postback


【解决方案1】:

一个 ASP.NET 按钮呈现一个&lt;input type="submit" /&gt; 以回发表单,并且永远不会使用此方法。 __doPostBack 方法仅用于不是输入按钮的元素,通常不会导致对服务器的 POST 操作。这是一个位于 Microsoft 的 JavaScript 文件中的函数,并且只会在客户端上呈现出来。 __doPostBack 的常见用途是 LinkBut​​ton 控件、可能具有 AutoPostBack="true" 的控件等。

另外,可能会调用 WebForms_DoPostBack...类似的名称也会回发,但在内部调用 __doPostBack。

如果您试图阻止单击按钮时的回发,请附加到表单的提交事件,然后以这种方式取消回发操作。

【讨论】:

    猜你喜欢
    • 2018-08-25
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多