0
<asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel" runat="server">
        <ContentTemplate>
            <asp:Repeater ID="rpChat" runat="server" OnItemDataBound="rpChat_ItemDataBound" OnItemCommand="rpChat_ItemCommand">
                <ItemTemplate>
                    <div id="divChatWindow" title='<%# Eval("username") %>' runat="server" class="clChatWindow">
                        <div>
                            <asp:Label runat="server" Text='<%# Eval("username") %>' class="divHeader"></asp:Label>
                            <img src="../../Menu/close.jpg" onclick="HideDiv(this)" style="float: right; width: 20px;
                                height: 20px;" /></div>
                        <div class="chatText">
                            <asp:Repeater ID="rpChatMessages" runat="server">
                                <ItemTemplate>
                                    <asp:Image ID="imageForFriend" runat="server" CssClass="clFriendsImage" ImageUrl='<%# "HttpImageHandler.jpg?username=" +  DataBinder.Eval(Container.DataItem,"fromusername").ToString() %>' />
                                    <asp:Label ID="chatMessage" runat="server" Text='<%# Eval("Message") %>'></asp:Label>
                                    <br>
                                </ItemTemplate>
                            </asp:Repeater>
                        </div>
                        <asp:TextBox ID="txtChatMessage" runat="server" Width="115px"></asp:TextBox>
                        <asp:LinkButton ID="btnSendChat" runat="server" CommandName="Insert" CommandArgument='<%# Eval("username") %>'>Send</asp:LinkButton>
                    </div>
                </ItemTemplate>
            </asp:Repeater>
        </ContentTemplate>
    </asp:UpdatePanel>

我已经编辑了代码......现在我该怎么办?我在内容模板中有链接按钮。仍在进行回发

4

1 回答 1

1

来自外部任何控件的任何回发都UpdatePanel将触发完整回发,除非您将这些事件添加为UpdatePanel

在你的例子中,

<asp:LinkButton ID="btnSendChat" runat="server" CommandName="Insert" CommandArgument='<%# Eval("Username2") %>'>Send</asp:LinkButton>

它不在,UpdatePanel因为您的面板中没有触发器,这些触发器总是会导致完整的回发

解决方案:

方法一

LinkButton里面的UpdatePanel.ContentTemplate

方法二

将触发器添加到您的UpdatePanel

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSendChat" EventName="Click" />
</Triggers>
于 2012-07-23T09:19:41.010 回答