如何解决即使更新模式设置为条件,所有子项也会执行异步回发
我有一个更新面板,UpdateMode 设置为条件,childrenastriggers 设置为 false,但面板中的所有控件都在执行异步回发...
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdateProgress ID="pnlUpdateProgress" displayAfter="1" runat="server">
<Progresstemplate>
Update in progress...
</Progresstemplate>
</asp:UpdateProgress>
<asp:UpdatePanel runat="server" ID="pnlUpdate" UpdateMode="Conditional" ChildrenAsTriggers="false">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="btnDonothing" EventName="Click" />
</Triggers>
<ContentTemplate>
<div runat="server" clientidmode="Static" id="divList">
<asp:Button runat="server" ID="btnDonothing" Text="Do nothing" OnClick="Unnamed_Click" />
<asp:Button runat="server" ID="btnSync" Text="Sync" OnClick="btnSync_Click" />
<br />
<div class="items_bought_table">
<table style="width: 100%; padding-bottom:24px;">
<thead>
<tr>
<th style="text-align: left;">Description</th>
<th></th>
</tr>
</thead>
<tbody>
<asp:Literal runat="server" ID="litList" />
</tbody>
</table>
</div>
<br />
<asp:Literal runat="server" ID="litDebugText" />
</div>
<div runat="server" clientidmode="Static" id="divedit">
<asp:HiddenField runat="server" ID="txtEditID" />
<asp:Literal ID="litEditList" runat="server">
</asp:Literal>
<ul>
<li class="full_width pt_10">
Your Product: <em><asp:Literal runat="server" ID="litEditProductName" /></em>
</li>
</ul>
</div>
</ContentTemplate>
</asp:UpdatePanel>
这里 btnSync 和 btnDonoting 都在执行异步回发,我希望只有 btnDonothing 可以异步回发,btnSync 应该执行完整的回发
解决方法
AsyncPostBackTrigger 只设置面板之外的控件。
页面上的控件更新面板之外可以通过将它们定义为触发器来刷新 UpdatePanel 控件。触发器是通过使用 AsyncPostBackTrigger 元素定义的。
控制回发将始终回发。我认为ChildrenAsTriggers="false"
不会停止回发 - 它只会停止更新内容。
正如@wazz 在他们的回答中所说,这是更新面板中的正常行为。要进行全面回击,您需要按照 this 问题的答案中所述进行“PostBackTrigger”。
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
<ContentTemplate>
...
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="myFullPostBackControlID" />
</Triggers>
</asp:UpdatePanel>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。