0

我在 Page_Init 中添加了可变数量的更新面板。

我的母版页中已经有一个脚本管理器。

问题是当我尝试添加触发器时:

AsyncPostBackTrigger trig2 = new AsyncPostBackTrigger();

trig2.ControlID = ddl22.UniqueID;

trig2.EventName = "SelectedIndexChanged";

up2.Triggers.Add(trig2);

其中 ddl22 是 DropDownList,该事件似乎永远不会触发 UpdatePanel。

在 UpdatePanel 中,我有另一个 DropDownList ,当触发发生时我想要更改的数据。

有趣的是,在母版页中我有一个计时器。这个计时器应该只触发主控中的 UpdatePanel,但它似乎触发了我所有的更新面板。但是,即使它触发了子页面中的更新面板,第二个 DropDownList 也不会更改其数据。

数据被数据绑定到 page_init 中 UpdatePanel 中的 DropDownList。它绑定到一个 objectdatasource,该 objectdatasource 使用第一个 DropDownList 中的选定项作为参数来确定它应该绑定哪些数据。

4

3 回答 3

1

AutoPostBack="True"为你的下拉列表设置了吗?我怀疑这是问题所在。

还将您的更新面板模式设置为有条件的UpdateMode="Conditional",这样我就不会影响其他更新面板。

于 2012-11-27T05:11:19.803 回答
0

试试这个,

在源代码中,

  <asp:UpdatePanel ID="up2" runat="server" UpdateMode="Conditional">
  <ContentTemplate>
  <asp:DropDownList ID="ddl1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddl1_SelectedIndexChanged"></asp:DropDownList>    
  <asp:DropDownList ID="ddl2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddl2_SelectedIndexChanged"></asp:DropDownList>
  </ContentTemplate>
  <Triggers>
      <asp:PostBackTrigger ControlID="ddl2" />
  </Triggers>
  </asp:UpdatePanel>
于 2012-11-27T05:06:26.083 回答
0

您可以手动调用 UpdatePanel 进行刷新,而无需在 postBack 事件上指定触发器。首先,set the UpdateMode property to 'Conditional'然后您可以从后面的代码中调用更新面板上的更新,例如

MyUpdatePanel.Update();
于 2012-11-27T05:15:52.583 回答