我有以下情况:
通过link button
触发的AsyncPostBackTrigger
。但仍然会发回完整的帖子!!
<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>
答案 0 :(得分:5)
ClientIDMode更改
ASP.NET 4中的ClientIDMode设置允许您指定ASP.NET如何为HTML元素生成id属性。在以前版本的ASP.NET中,默认行为等同于ClientIDMode的AutoID设置。但是,默认设置现在是可预测的。
如果使用Visual Studio 2010从ASP.NET 2.0或ASP.NET 3.5升级应用程序,该工具会自动向Web.config文件添加一个设置,以保留早期版本的.NET Framework的行为。但是,如果通过将IIS中的应用程序池更改为以.NET Framework 4为目标来升级应用程序,则ASP.NET默认使用新模式。要禁用新的客户端ID模式,请在Web.config文件中添加以下设置:
<pages ClientIDMode="AutoID" />
或在页面指令中添加ClientIDMode =“AutoID”。
答案 1 :(得分:4)
在我的页面指令中添加ClientIDMode="AutoID"
解决了我的问题。
答案 2 :(得分:2)
将UpdatePanel
的{{3}}更改为“有条件”。
<asp:UpdatePanel UpdateMode="Conditional" ID="UpdatePanel1" runat="server">
如果UpdatePanel
属性设置为UpdateMode
,则Conditional
会更新,并且会出现以下某种情况:
UpdatePanel
控件的触发器属性定义为触发器的控件引起的。在此方案中,控件显式触发面板内容的更新。控件可以位于内部,也可以位于定义触发器的UpdatePanel 控件之外。