2011-09-01 91 views
1

我有一個頁面與主頁面相關聯。我需要實現Ajax(基本上想做部分頁面刷新)。 在這個頁面我有網格和分頁按鈕(第一/上一個/上一個/下一個),下拉菜單和搜索。 所以所有這些更新網格。使用UpdatePanel刷新部分頁面

現在我有下面的代碼

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 

這裏是喜歡的ContentTemplate標記後格/按鍵/搜索HTML開始

所以最後在頁面左邊的菜單/頁腳/標題和內容

</ContentTemplate> 
    </asp:UpdatePanel> 
</asp:Content> 

但是,這仍然刷新頁面。

回答

1

我有點困惑,因爲你有,你想要什麼。

聽起來好像你有一個Content控件,其中有一個UpdatePanel。在UpdatePanelContentTemplate你有你的所有網格,按鈕等隨着你的菜單。

您只需要在UpdatePanelContentTemplate中擁有要更新的控件。除UpdatePanel以外的所有其他內容。如果您有任何控制UpdatePanel以外的任何控制,則需要觸發刷新,併爲UpdatePanel中的每個控件設置Trigger,並告知它要觸發哪個事件。

實施例:

<asp:Button ID="btnTest" runat="server" Text="Test" /> 
<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
     <!-- only your content that needs refreshing goes here --> 
    <ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnTest" EventName="Click" /> 
    </Triggers> 
</asp:UpdatePanel> 

在上面的例子中btnTest點擊事件將導致UpdatePanel的內容來刷新但UpdatePanel之外Button或任何將不刷新。如果Trigger未設置,整個頁面將刷新。您不需要Trigger設置UpdatePanel內的控件,因爲所有控件事件將被UpdatePanel捕獲以進行刷新。

您可以在MSDN上了解更多信息。