2011-11-08 61 views
1

我已經看到了Ext.net的示例站點,其中每個新頁面都作爲TabPanel控件中的選項卡/頁面添加。Ext.Net在TabPanel中加載TreePanel的Href

而不是那個,我想有一個TabPanel只有一個標籤/面板,它會顯示一個頁面的內容。我抄我現有

  • TreePanel中定義
  • 代碼隱藏的代碼來填充TreePanel中的數據從網站地圖
  • 的TabPanel定義

在這種情況下,我怎麼加載控件中的URL「 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; 
} 

的TabPanel定義

<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

在哪個事件中,我應該使用上述? –