2011-11-08 3 views
1

각 새 페이지가 TabPanel 컨트롤의 탭/페이지로 추가되는 Ext.net의 예제 사이트를 보았습니다.Ext.Net TabPanel에서 TreePanel의 Href로드

대신에 페이지의 내용을 표시 할 탭/패널이 하나만있는 TabPanel을 갖고 싶습니다. 나는 "

  • 이 시나리오에서는 탭 패널을 정의
  • , 어떻게 내가 컨트롤 내부 URL을로드 할 사이트 맵에서 TreePanel 데이터를 채우기

    • TreePanel 정의
    • 코드 숨김의 기존 코드를 복사 한 MainPanel "?

      TreePanel 정의

      <ext:TreePanel ID="MenuTree" runat="server" Height="300" Width="250" UseArrows="true" 
          AutoScroll="true" Animate="true" EnableDD="true" ContainerScroll="true" RootVisible="false"> 
          <TopBar> 
           <ext:Toolbar runat="server"> 
            <Items> 
             <ext:ToolbarTextItem runat="server" Text="<%$Resources:OneResource, Search %>" /> 
             <ext:ToolbarSpacer /> 
             <ext:TriggerField ID="TriggerField1" runat="server" EnableKeyEvents="true"> 
              <Triggers> 
               <ext:FieldTrigger Icon="Clear" /> 
              </Triggers> 
              <Listeners> 
               <KeyUp Fn="filterTree" Buffer="250" /> 
               <TriggerClick Handler="clearFilter();" /> 
              </Listeners> 
             </ext:TriggerField> 
             <ext:ToolbarSpacer /> 
             <ext:LinkButton ID="PreviewLinkButton" runat="server" Text="<%$Resources:OneResource, Preview %>" /> 
            </Items> 
           </ext:Toolbar> 
          </TopBar> 
      </ext:TreePanel> 
      

      사이트 맵에서 TreePanel 데이터를 채우려면 코드 숨김

      protected void Page_Load(object sender, EventArgs e) 
      { 
          Ext.Net.TreeNode root = this.CreateNode(SiteMap.RootNode); 
          root.Draggable = false; 
          root.Expanded = true; 
          MenuTree.Root.Add(root); 
          MenuTree.ExpandAll(); 
      } 
      
      /// <summary> 
      /// Creates nodes from sitemap data 
      /// </summary> 
      /// <param name="siteMapNode">Pass the root node of Web.sitemap</param> 
      /// <returns></returns> 
      private Ext.Net.TreeNode CreateNode(SiteMapNode siteMapNode) 
      { 
          Ext.Net.TreeNode treeNode = new Ext.Net.TreeNode(); 
          treeNode.NodeID = siteMapNode.Key; 
          treeNode.Text = siteMapNode.Title; 
          treeNode.Qtip = siteMapNode.Description; 
          treeNode.Href = siteMapNode.Url; 
          treeNode.Icon = this.GetIcon(siteMapNode["menuId"].ToString()); 
          SiteMapNodeCollection children = siteMapNode.ChildNodes; 
          if (children != null && children.Count > 0) 
          { 
           foreach (SiteMapNode mapNode in siteMapNode.ChildNodes) 
           { 
            treeNode.Nodes.Add(this.CreateNode(mapNode)); 
           } 
          } 
          return treeNode; 
      } 
      

      탭 패널을 정의

      <ext:TabPanel ID="ContentTabPanel" runat="server" Region="Center" Margins="0 4 4 0" EnableTabScroll="true" 
          MinTabWidth="85"> 
          <Items> 
           <ext:Panel ID="MainPanel" runat="server" Title="<%$Resources:OneResource, Dashboard %>" 
            Icon="Application"> 
            <AutoLoad Mode="IFrame" Url="~/Admin/Index.aspx" ShowMask="false" /> 
           </ext:Panel> 
          </Items> 
          <Plugins> 
           <ext:TabCloseMenu runat="server" /> 
          </Plugins> 
      </ext:TabPanel> 
      

    답변

    2

    두 가지 방법으로이 작업을 수행 할 수 있습니다

    1) 클라이언트 측 :

    MainPanel.autoLoad.url = 'http://www.someurl.com'; 
    MainPanel.reload(); 
    

    2) DirectEvent 또는 DirectMethod 통해 서버 측 :

    MainPanel.AutoLoad.Url = "http://www.someurl.com"; 
    MainPanel.Reload(); 
    
    +0

    위 이벤트를 사용해야하는 이벤트는 무엇입니까? –

    관련 문제