0

我有一个带有生成更新面板的页面,如下所示:

foreach(DataRow r in GetSteps(ID).Rows)
    {

      UpdatePanel StepPanel = new UpdatePanel();
      StepPanel.ID = "stepPanel_" + r["StepID"].ToString();

      StepPanel.ContentTemplateContainer.Controls.Add(GenerateInnerPanel(r));
      StepHolder.Controls.Add(StepPanel);         

    }

这会生成所有 UpdatePanel 并将其添加到我页面上的占位符中:

<asp:PlaceHolder ID="StepHolder" runat="server"></asp:PlaceHolder>

每个 UpdatePanel 内部都有一个可点击的面板,它调用这个 javascript 函数:

function StepClick(sender, stepID){
  __doPostBack(sender.ID, stepID);
}

javascript 发回,然后我检查发件人并在页面加载时向单击的更新面板添加一些详细信息。

我遇到的问题是单击更新面板中的一个 div 会导致完整的回发,而不仅仅是回发包含更新面板的内容。我在哪里将更新面板设置为只回发自己而不是整个页面?也许它甚至不是一个设置,在这种情况下我该怎么做?

非常感谢您的帮助!

4

1 回答 1

1

将 updatemode 设置为条件并将您的 div 设置为触发器或设置 ChildrenAsTriggers=true。

此外,请确保您在 ASPX 页面中放置了 scriptmanager。您可以通过这种方式自动调用服务器端函数。

于 2013-05-14T11:47:47.770 回答