为什么我的链接按钮做了一个完整的帖子,虽然它'触发了一个更新面板
本文关键字:一个 更新 按钮 链接 我的 为什么 | 更新日期: 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-changesUpdatePanel中ListView中的LinkButton导致完全回发
在我的页面指令中添加ClientIDMode="AutoID"
解决了我的问题。
将UpdatePanel
的UpdateMode
属性改为"Conditional"
<asp:UpdatePanel UpdateMode="Conditional" ID="UpdatePanel1" runat="server">
如果UpdateMode
属性设置为Conditional
,则更新UpdatePanel
,并且出现以下情况之一:
- 你显式调用UpdatePanel控件的Update方法。
- 回发是由控件引起的,该控件使用
UpdatePanel
控件的Triggers属性定义为触发器。在这个场景中,控件显式地触发面板内容的更新。控件既可以在内部,也可以在定义触发器的UpdatePanel控件之外。 - …