【问题标题】:Update Panel refreshes whole page更新面板刷新整个页面
【发布时间】:2011-12-17 07:59:46
【问题描述】:

在母版页上,我的脚本管理器启用了部分渲染是真的。 在我有一个用户控件的页面上,在这个用户控件上是一个更新面板,更新模式是有条件的。

这是关于通过单击图像按钮将项目从左侧列表框交换到右侧列表框的两个列表框。 (这很好用)

两个图像按钮位于样式表的 div 块中。 我为他们使用 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" />

【问题讨论】:

  • 如果您需要更多代码,请索取。提前致谢!

标签: asp.net listbox updatepanel


【解决方案1】:

您似乎误解了 PostBackTrigger 的作用。

PostBackTrigger 导致整页回发,而AsyncPostBackTriggerUpdatePanel 中执行 AJAX 调用。 UpdatePanel 内的所有元素自动调用AsyncPostBackTriggers,面板外的所有元素调用PostBackTriggers。

因此,要解决您的问题,只需删除整个 Triggers 部分即可。

【讨论】:

  • 感谢您的回复,我删除了触发器部分,但它仍然刷新了整个页面。真的,我总是把他们弄糊涂,所以我在 asp.net 上找到了这个。 AsyncPostBackTrigger 将回发转换为异步回调 通常用于在 UpdatePanel 外部的控件回发时触发更新 如果 ChildrenAsTriggers="false",可用于指定 UpdatePanel 内的哪些控件应回调而不是回发 PostBackTrigger 让 UpdatePanel 内的控件回发 通常使用允许某些控件在 ChildrenAsTriggers="true" 时回发
  • 我不确定你是否说你解决了问题,但删除触发器部分 UpdateMode="Conditional" 行应该可以解决它。您想要UpdatePanel 的默认行为。您的代码不够复杂,不需要更改 ChildrenAsTriggers 的默认值。
  • 再次感谢!我做了你的建议,但它仍然没有工作(还)。下一步是什么????
  • 您在脚本管理器上设置了任何属性吗?如果是这样,请在没有它​​们的情况下尝试,因为这应该可以工作。
  • 是的,我有 EnablePartialrendering ="true" 好的,我会试试的。无论如何,谢谢我删除了这个属性,它工作得很好!!谢谢
猜你喜欢
  • 2014-03-09
  • 2013-04-15
  • 1970-01-01
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 2011-12-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多