0

RepeaterUpdatePanel. ImageButton单击(Repeater模板内部)时,我需要更新另一个控件。问题是我无法触发它。

面板upPanelRotator已刷新...我想要...我只想回调服务器以更新另一个面板 - 我将从服务器控制。

有任何想法吗?

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

3 回答 3

0

我现在有类似的情况,我这样做是为了将控件包装在另一个UpdatePanel中的Repeater中,并设置该控件的AutoPostBack="true"并注册

<asp:AsyncPostBackTrigger ControlID="imgBtn" EventName="Click"/>

我对此的唯一考虑是这么多的 UpdatePanel 将如何反映性能。我有一个数据库条目很少的小项目,但对于大量数据,我会在这种干预之前和之后测试性能。

于 2013-09-09T07:32:04.483 回答
0

您应该能够将异步回发触发器添加到要更新的更新面板。将中继器的控件id和“ItemCommand”事件设置为事件名称……像这样:

<asp:UpdatePanel ID="updatePanel2" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional">
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="repeaterId" EventName="ItemCommand" />
    </Triggers>
    <ContentTemplate>

...

于 2013-08-13T15:30:07.207 回答
0

如果 PanelA 具有触发按钮,并且您想要更新 PanelB,则需要在 PanelB 周围的 UpdatePanel 上设置异步回发触发器。问题是,您需要提供按钮的实际 ID,像上面那样指定 imgButton 是行不通的(因为中继器中可能有很多,并且异步触发器需要一个无法引用的引用寻找)。为了使这非常简单,请将所有内容都包含在 UpdatePanel 中,这将使您的生活更轻松。否则,您必须从我相信的代码中添加异步回发触发器。

于 2013-04-19T14:56:55.213 回答