2011-12-17 161 views
1

在主頁上我有我的scriptmanager與enablepartialrendering是真實的。 在頁面我有一個用戶控件,在這個用戶控件是UpdateMode的更新面板是有條件的。更新面板刷新整個頁面

這是關於兩個列表框,通過點擊一個圖像按鈕將項目從左側列表框中交換到右側列表框。 (這工作正常)

這兩個圖像按鈕在樣式表的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" /> 
+0

請提供一些代碼... – 2011-12-17 08:08:37

+0

如果您需要更多代碼,請詢問。提前致謝! – 1SeoAdvies 2011-12-17 09:03:29

回答

3

你似乎誤解了該PostBackTrigger做什麼。

A PostBackTrigger會導致整頁回發,而AsyncPostBackTrigger會在UpdatePanel內進行AJAX呼叫。 UpdatePanel中的所有元素自動調用調用AsyncPostBackTrigger s,面板外的所有元素調用PostBackTrigger s。

因此,要解決您的問題,只需刪除整個Triggers部分。