我在Repeater
中有一个ASP.NET UpdatePanel
控件。点击ImageButton
(Repeater
模板内部)时,我需要更新另一个控件。问题是我无法触发。
小组upPanelRotator
已刷新...我不想...我只是想回电话给服务器更新另一个小组 - 我和#39 ; ll从服务器控制。
有什么想法吗?
<asp:UpdatePanel ID="upPanelRotator" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Repeater ID="rptRotator" runat="server" OnItemCommand="rptRotator_ItemCommand">
<ItemTemplate>
<asp:ImageButton ID='imgBtn' runat="server" />
</asp:Repeater>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="imgBtn" EventName="ItemCommand" />
</Triggers>
</asp:UpdatePanel>
答案 0 :(得分:0)
如果PanelA有触发按钮,并且您想要更新PanelB,则需要在PanelB周围的UpdatePanel上安装异步回发触发器。问题是,你需要给出按钮的实际ID,指定imgButton就像你上面的那样不起作用(因为转发器中可能有很多,而async触发器需要一个它不能用的引用找)。为了使这个非常简单,请将所有内容包装在UpdatePanel中,这将使您的生活更轻松。否则,您必须从我认为的代码中添加异步回发触发器。
答案 1 :(得分:0)
您应该能够将async postback触发器添加到要更新的updatepanel。将转发器的控件ID和“ItemCommand”事件设置为事件名称......如下所示:
<asp:UpdatePanel ID="updatePanel2" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="repeaterId" EventName="ItemCommand" />
</Triggers>
<ContentTemplate>
...
答案 2 :(得分:0)
我现在有类似的情况,我这样做是为了让我将控件包含在另一个 UpdatePanel 中的 Repeater 中,并设置 AutoPostBack =“true “该控件,并注册
<强>&LT; asp:AsyncPostBackTrigger ControlID =“imgBtn”EventName =“Click”/&gt;
我对此的唯一考虑是,如此数量的UpdatePanel将如何反映性能。我有一个小项目,几乎没有数据库条目,但是对于大量的数据,我会在这种干预之前和之后测试性能。