UpdatePanel 不适用于脚本管理器.下面的代码发生了回发.我该如何做 Ajax 行为


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

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

来自

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

在您的示例中,

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

它超出了UpdatePanel,并且由于面板中没有触发器,因此始终会导致完全回发

解决 方案:

方法1

LinkButton放在UpdatePanel.ContentTemplate

方法2

UpdatePanel添加触发器

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSendChat" EventName="Click" />
</Triggers>

最新更新