【问题标题】:All UpdatePanels on page updating on __doPostBack在 __doPostBack 上更新页面上的所有 UpdatePanel
【发布时间】:2012-01-04 01:09:16
【问题描述】:

当页面上有多个 UpdatePanel 时尝试通过 JavaScript 更新 UpdatePanel 时,我遇到了关闭行为。

会尽量简短:

  • 我已经将 UpdateMode 设置为 Conditional
  • 我将 UpdatePanel 的正确 ClientID 传递到 __EventTarget
  • 在代码隐藏中,我成功地找到了目标控件

但由于某种原因,页面上每个 UpdatePanel 的 OnLoad 都会被触发。

下面是一段 sn-p 代码 - 知道为什么会这样吗?

Ascx:

<div class="updatePanelWrapper">
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" RenderMode="Inline" OnLoad="UpdatePanel1Load"
    runat="server">
    <ContentTemplate>
        <asp:Panel ID="Panel1" runat="server">
        </asp:Panel>
    </ContentTemplate>
</asp:UpdatePanel>
</div>
<div class="updatePanelWrapper">
<asp:UpdatePanel ID="UpdatePanel2" UpdateMode="Conditional" RenderMode="Inline" OnLoad="UpdatePanel2Load"
    runat="server">
    <ContentTemplate>
        <div>
            <asp:Panel ID="Panel2" runat="server">
            </asp:Panel>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>
</div>

代码隐藏:

protected void UpdatePanel1Load(object sender, EventArgs e)
{
    UpdatePanelLoad(sender, e);
}

protected void UpdatePanel2Load(object sender, EventArgs e)
{
    UpdatePanelLoad(sender, e);
}

protected void UpdatePanelLoad(object sender, EventArgs e)
{
    // if only a async postback then load the control
    if (ScriptManager.GetCurrent(Page).IsInAsyncPostBack)
    {
        // Some Logic ...
    }
}

JavaScript(我正在触发 ASYNC PostBack):

var updatePanelWrappers = $(".updatePanelWrapper");
var availableWrapper = updatePanelWrappers[0];
var updatePanelElement = $(availableWrapper).children()[0];
var updatePanelId = $(updatePanelElement).attr("id");

window.__doPostBack(updatePanelId, "Some Arguments...");

【问题讨论】:

    标签: asp.net asp.net-ajax updatepanel


    【解决方案1】:

    使用 UpdatePanel 回调,页面仍会经历其大部分生命周期;其中包括所有的 Load 事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      • 1970-01-01
      • 1970-01-01
      • 2012-12-14
      • 1970-01-01
      • 2012-12-05
      • 1970-01-01
      相关资源
      最近更新 更多