C# 如何以编程方式添加UpdatePanel及其触发器?

C# 如何以编程方式添加UpdatePanel及其触发器?,c#,asp.net,ajax,C#,Asp.net,Ajax,我在Page_Init中添加了数量可变的更新面板 我的母版页中已经有一个脚本管理器 问题是,当我尝试添加触发器时,如: AsyncPostBackTrigger trig2 = new AsyncPostBackTrigger(); trig2.ControlID = ddl22.UniqueID; trig2.EventName = "SelectedIndexChanged"; up2.Triggers.Add(trig2); 在ddl22是DropDownList的情况下,事件似乎

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

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

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

AsyncPostBackTrigger trig2 = new AsyncPostBackTrigger();

trig2.ControlID = ddl22.UniqueID;

trig2.EventName = "SelectedIndexChanged";

up2.Triggers.Add(trig2);
在ddl22是DropDownList的情况下,事件似乎永远不会触发UpdatePanel

在UpdatePanel中,我有另一个DropDownList,我希望在触发时更改其数据

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

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

试试这个

在源代码中

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

您是否为下拉列表设置了
AutoPostBack=“True”
?我怀疑这就是问题所在


还可以将更新面板模式设置为conditional-
UpdateMode=“conditional”
,这样我就不会影响其他更新面板。

您可以手动调用UpdatePanel进行刷新,而无需在回发事件上指定触发器。首先,
将UpdateMode属性设置为“Conditional”
,然后您可以从代码隐藏中调用updatepanel上的更新,如

MyUpdatePanel.Update();