C# 如何以编程方式添加UpdatePanel及其触发器?
我在Page_Init中添加了数量可变的更新面板 我的母版页中已经有一个脚本管理器 问题是,当我尝试添加触发器时,如: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的情况下,事件似乎
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();