为什么我的链接按钮做了一个完整的帖子,虽然它'触发了一个更新面板

本文关键字:一个 更新 按钮 链接 我的 为什么 | 更新日期: 2023-09-27 17:49:01

我有以下情况:

一个通过AsyncPostBackTrigger触发的link button,但仍然做了一个完整的post back !!


<asp:LinkButton ID="lbtnShowNotes" runat="server" CssClass="blue" OnClick="lbtnShowNotes_Click"> <img src="images/document_notes.png"/>notes</asp:LinkButton>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Panel ID="pnlNotes" runat="server" Visible="false">
                        <asp:Label ID="lbl_title" runat="server" Text="الملاحظات"></asp:Label>
                        <asp:TextBox ID="txt_Coments" runat="server" Columns="70" Rows="5" TextMode="MultiLine"></asp:TextBox>
                        <asp:LinkButton ID="lbtnOkNotes" runat="server"><img src="images/tick.png" alt=""/></asp:LinkButton>
                        <asp:LinkButton ID="lbtnCancelNotes" runat="server" CausesValidation="False" OnClick="lbtnCancelNotes_Click"><img src="images/tick.png" alt=""/></asp:LinkButton>
                    </asp:Panel>
                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="lbtnShowNotes" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>

为什么我的链接按钮做了一个完整的帖子,虽然它'触发了一个更新面板

ClientIDMode Changes

ASP中的ClientIDMode设置。. NET 4允许您指定ASP。. NET为HTML元素生成id属性。在以前的ASP版本中。. NET时,默认行为相当于ClientIDMode的AutoID设置。但是,现在默认设置是可预测的。

如果您使用Visual Studio 2010从ASP升级您的应用程序。. NET 2.0或ASP。NET 3.5时,该工具会自动向Web添加设置。配置文件保留了。net框架早期版本的行为。但是,如果您通过更改IIS中的应用程序池来升级应用程序,以瞄准。net Framework 4,那么ASP. net将无法使用。NET默认使用新模式。要禁用新的客户端ID模式,请在Web中添加以下设置。配置文件:

<pages ClientIDMode="AutoID" />

或者在你的页面指令中添加ClientIDMode="AutoID"。

http://www.asp.net/whitepapers/aspnet4/breaking-changes

UpdatePanel中ListView中的LinkButton导致完全回发

在我的页面指令中添加ClientIDMode="AutoID"解决了我的问题。

UpdatePanelUpdateMode属性改为"Conditional"

<asp:UpdatePanel UpdateMode="Conditional" ID="UpdatePanel1" runat="server">

如果UpdateMode属性设置为Conditional,则更新UpdatePanel,并且出现以下情况之一:

  • 你显式调用UpdatePanel控件的Update方法。
  • 回发是由控件引起的,该控件使用UpdatePanel控件的Triggers属性定义为触发器。在这个场景中,控件显式地触发面板内容的更新。控件既可以在内部,也可以在定义触发器的UpdatePanel控件之外。