代码之家  ›  专栏  ›  技术社区  ›  Joseph Anderson

UpdatePanel不执行部分页面更新,并且IsInAsyncPostBack始终为false

  •  2
  • Joseph Anderson  · 技术社区  · 16 年前

    当我查看ScriptManager的IsInAsyncPostBack属性时,它总是false。

    这里有一个页面重现了这个问题。它有一个ScriptManager、一个UpdatePanel、更新面板中的一个LinkButton,以及一个通过触发器集合连接到UpdatePanel的按钮。

    <%@ Page Language="C#" %>
    <script runat="server">
        protected void Page_Load(object sender, EventArgs e)
        {
    
            Label1.Text = DateTime.Now.ToString();
    
            if (IsPostBack)
                Label1.Text += " - Postback!";
            if (ScriptManager1.IsInAsyncPostBack)
                Label1.Text += " - Async!";
        }
    </script>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <body>
        <form id="form1" runat="server">
                <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server"  />
    
                <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
                    <ContentTemplate>Panel 1:<asp:Label runat=server ID=Label1 /><br />
                    <asp:LinkButton runat=server ID="LinkButton1" Text="Update!"></asp:LinkButton></ContentTemplate>
                    <Triggers><asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" /></Triggers>
                </asp:UpdatePanel>
                <asp:Button ID="Button1" Text="Refresh Panel 1" runat="server" UseSubmitBehavior=false />
    
        </form>
    </body>
    </html>
    

    我希望单击任一按钮都会导致UpdatePanel1的部分页面更新,IsInAsyncPostBack为true,并且“-Async!”将被附加到标签1。

    1 回复  |  直到 6 年前
        1
  •  10
  •   Joseph Anderson    16 年前

    <xhtml-lconformance mode=“遗留”/> . 设置旧模式时,部分页面更新不起作用(事实上,他们默默地失败了——嘘!嘘!)

    将模式更改为“过渡”解决了此问题。

    http://weblogs.asp.net/scottgu/archive/2006/12/10/gotcha-don-t-use-xhtmlconformance-mode-legacy-with-asp-net-ajax.aspx

    推荐文章