在母版页上,我的脚本管理器启用了部分渲染是真的。 在我有一个用户控件的页面上,在这个用户控件上是一个更新面板,更新模式是有条件的。
这是关于通过单击图像按钮将项目从左侧列表框交换到右侧列表框的两个列表框。 (这很好用)
两个图像按钮位于样式表的 div block 中。 我为他们使用 postbacktrigger。 还是整个页面刷新,我做错了什么?
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="DoubleListBox.ascx.cs"
Inherits="site.Controls.DoubleListBox" %>
<div class="formfield ff_itemswapper">
<asp:Label ID="Label" runat="server" />
<div class="itemswapper">
<asp:UpdatePanel ID="updatePanelListboxes" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:ListBox ID="lsbFrom" runat="server" CssClass="is_current"></asp:ListBox>
<div class="is_transfers" runat="server">
<asp:ImageButton ID="imb_Left" runat="server" CssClass="is_transfer_in" ImageUrl="../Images/gfx/arrow_left.png"
OnClick="imbLeft_Click" CausesValidation="False" />
<asp:ImageButton ID="img_Right" runat="server" CssClass="is_transfer_out" ImageUrl="../Images/gfx/arrow_right.png"
OnClick="imgRight_Click" CausesValidation="False" />
</div>
<asp:ListBox ID="lsbTo" runat="server" CssClass="is_source"></asp:ListBox>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="imb_Left" />
<asp:PostBackTrigger ControlID="img_Right" />
</Triggers>
</asp:UpdatePanel>
</div>
列表框是在aspx页面中注册的
<%@ Register Src="~/Controls/DoubleListBox.ascx" TagName="DoubleListBox" TagPrefix="lsb" %>
并被调用:
<lsb:DoubleListBox ID="lsbPractise" runat="server" />
最佳答案
您似乎误解了 PostBackTrigger
的作用。
PostBackTrigger
会导致整个页面回发,而AsyncPostBackTrigger
从 UpdatePanel
中执行 AJAX 调用。 UpdatePanel
内的所有元素自动调用AsyncPostBackTrigger
s,面板外的所有元素调用PostBackTrigger
s。
因此,要解决您的问题,只需删除整个 Triggers
部分。
关于asp.net - 更新面板刷新整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8543474/