2010-05-30 62 views
3

我在我的ajax頁面有兩個更新面板。這是我第一次使用updatepanel,我不知道什麼是錯的。我認爲只有btnFilter的Click事件必須觸發第二個更新面板的內容,但是更改組合值(它也隱藏/取消隱藏btnFilter按鈕)使第二個更新面板更改內容(至少我看到有時使用螢火蟲&第二個更新面板閃爍傳輸數據)。在線here爲什麼updatepanel觸發另一個更新面板?

<asp:UpdatePanel ID="upComparison" runat="server"> 
    <ContentTemplate> 
     Brand: 
     <asp:DropDownList ID="ddlBrands" runat="server" AutoPostBack="true" 
     OnSelectedIndexChanged="ddlBrands_SelectedIndexChanged" 
     AppendDataBoundItems="true"> 
      <asp:ListItem Value="" Text="Please select a brand..." /> 
     </asp:DropDownList> 
     <asp:Panel ID="pModels" runat="server" Visible="false"> 
      Model: 
      <asp:DropDownList ID="ddlModels" runat="server" AutoPostBack="true" 
      OnSelectedIndexChanged="ddlModels_SelectedIndexChanged" /> 
     </asp:Panel> 
     <asp:Panel ID="pButton" runat="server" Visible="false"> 
      <asp:UpdateProgress ID="upMain" runat="server" DisplayAfter="100"> 
       <ProgressTemplate><img src="/Assets/Images/loader.gif" /> 
       </ProgressTemplate> 
      </asp:UpdateProgress> 
      <asp:Button ID="btnFilter" runat="server" Text="Filter" 
      OnClick="btnFilter_Click" /> 
     </asp:Panel> 
    </ContentTemplate> 
</asp:UpdatePanel>  
<asp:UpdatePanel ID="upList" runat="server"> 
    <ContentTemplate> 
     <asp:Repeater ID="rProducts" runat="server"> 
      <ItemTemplate>some code here</ItemTemplate> 
     </asp:Repeater> 
    </ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnFilter" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

回答

10

默認情況下,每個UpdatePanel將在每次異步回發期間刷新。

要更改此行爲,請將UpdateMode property設置爲Conditional

+3

+1,我想知道它爲什麼默認設置爲Always。必須與默認情況下EnableViewState背後的延遲一樣。 – 2010-05-30 20:26:05