2017-10-06 75 views
0

是否可以使用UpdatePanel控件浏览左面板(菜单)? 在Main.master有左边的菜单使用UpdatePanel控件只刷新内容

<dx:ASPxNavBar ID="ASPxNavBar1" runat="server" AutoCollapse="True" EnableAnimation="True" Width="100%"> 
    <dx:NavBarGroup Text="Group"> 
     <Items> 
      <dx:NavBarItem NavigateUrl="Content/Content1.aspx" Text="Content1"></dx:NavBarItem> 
      <dx:NavBarItem NavigateUrl="Content/Content2.aspx" Text="Data Subject"></dx:NavBarItem> 
     </Items> 
    </dx:NavBarGroup> 
</dx:ASPxNavBar> 

,我尝试使用UpdatePanel控件

<div class="contentPane"> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" updatemode="conditional"> 
     <ContentTemplate> 
      <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</div> 

使用仅刷新内容,但它不工作;标题和菜单在浏览菜单时仍然会重新加载。

Content1.aspxContent2.aspx文件具有<asp:content>标签

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="server"> 
    <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False" KeyFieldName="PK" Width="750px"> 
     <Columns> 
      <dx:GridViewCommandColumn ShowNewButtonInHeader="True" VisibleIndex="0" ShowDeleteButton="True" ShowEditButton="True"> 
      </dx:GridViewCommandColumn> 
      <dx:GridViewDataTextColumn FieldName="PK" ReadOnly="True" Visible="false" VisibleIndex="1"> 
      </dx:GridViewDataTextColumn> 
      <dx:GridViewDataTextColumn FieldName="Name" VisibleIndex="2"> 
      </dx:GridViewDataTextColumn> 
     </Columns> 
    </dx:ASPxGridView> 
</asp:Content> 

回答

1

内只是一个平常的内容我不知道为什么你使用的是的UpdatePanel是一个requeriment? 我会用一个ASPxCallbackPanel这是一个伟大更换为的UpdatePanel,你可以使用它,因为你正在使用的DevExpress控制

<script type="text/javascript"> 
     var postponedCallbackRequired = false; 
     function OnListBoxIndexChanged(s, e) { 
      if(CallbackPanel.InCallback()) 
       postponedCallbackRequired = true; 
      else 
       CallbackPanel.PerformCallback(); 
     } 
     function OnEndCallback(s, e) { 
      if(postponedCallbackRequired) { 
       CallbackPanel.PerformCallback(); 
       postponedCallbackRequired = false; 
      } 
     } 
    </script> 

<dx:ASPxListBox runat="server" Height="221px" Width="100%" TextField="Name" DataSourceID="EmployeesDataSource1" 
         ValueField="EmployeeID" ID="ASPxListBox1" ClientInstanceName="ListBox" BackColor="Transparent"> 
         <Border BorderWidth="0px"></Border> 
         <ItemStyle> 
          <Border BorderWidth="0px"></Border> 
         </ItemStyle> 
         <ClientSideEvents SelectedIndexChanged="OnListBoxIndexChanged" /> 
        </dx:ASPxListBox> 


<dx:ASPxCallbackPanel runat="server" ID="ASPxCallbackPanel1" Height="250px" ClientInstanceName="CallbackPanel" RenderMode="Table"> 
         <ClientSideEvents EndCallback="OnEndCallback"></ClientSideEvents> 
         <PanelCollection> 
          <dx:PanelContent ID="PanelContent3" runat="server"> 
</dx:PanelContent> 
         </PanelCollection> 
        </dx:ASPxCallbackPanel> 

你可以看到一个完整的示例代码here

+0

谢谢你你的答案维克多。这是我正在寻找的一个非常接近的脚本。如示例所示,我不需要在“ASPxListBox”和“ASPxCallbackPanel”中进行数据绑定。我已经在aspx文件中有内容。我将调查是否有类似的解决方案与URL列表项目。 – corry

+0

@很高兴知道它有帮助 –