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>

コードを編集しました...ではどうすればよいですか?contenttemplate内にリンクボタンがあります。まだポストバックが起こっています

4

1 に答える 1

1

外部のコントロールからのポストバックUpdatePanelは、それらのイベントをトリガーとして追加しない限り、完全なポストバックをトリガーします。UpdatePanel

あなたの例では、

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

UpdatePanelパネルには常に完全なポストバックを引き起こすトリガーがないため、 andの外にあります

ソリューション:

アプローチ1

LinkButton中に入れますUpdatePanel.ContentTemplate

アプローチ 2

トリガーを追加するUpdatePanel

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