dev*_*per 12 asp.net ajax updatepanel
我有一个包含两个ContentPlaceHolders的页面.一个有DropDown和另一个包含内容的UpdatePanel.
如果DropDown的selectedItemChanged事件位于不同的ContentPlaceholder中,如何触发UpdatePanel的更新?
由于UpdatePanel1不知道DropDown1,因此以下操作无效:
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
Some content that needs to be updated here...
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDown1" EventName="SelectedIndexChanged" />
</Triggers>
</asp:UpdatePanel>
Run Code Online (Sandbox Code Playgroud)
一种方法是制作一个ajax页面方法,当选择DropDown项目时,该方法将由页面上的javascript调用.然后在代码后面,在该页面方法中,调用UpdatePanel1.Update().
有更简单的选择吗?
Cre*_*esh 22
来自http://msdn.microsoft.com/en-us/library/system.web.ui.asyncpostbacktrigger.aspx
AsyncPostBackTrigger引用的控件必须与作为触发器的更新面板位于相同的命名容器中.不支持基于其他命名容器中的控件的触发器.
解决方法是使用触发器引用的控件的UniqueID.不幸的是,在将控件添加到其父级(并且其父级已添加到其父级,一直到控制树之前)之前,UniqueID不合格.
在您的代码后面,尝试:
UpdatePanel1.Triggers.Add(new AsyncPostBackTrigger()
{
ControlID = DropDown1.UniqueID,
EventName = "SelectedIndexChanged", // this may be optional
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73986 次 |
| 最近记录: |