2011-09-01 58 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上了解更多信息。