【问题标题】:Ext.Net Load TreePanel's Href in a TabPanelExt.Net 在 TabPanel 中加载 TreePanel 的 Href
【发布时间】:2011-11-08 18:44:06
【问题描述】:

我看过 Ext.net 的示例站点,其中每个新页面都作为选项卡/页面添加到 TabPanel 控件中。

而不是那样,我想要一个 TabPanel,只有一个选项卡/面板可以显示页面的内容。我已经复制了我现有的代码

  • TreePanel 定义
  • CodeBehind 从 SiteMap 填充 TreePanel 数据
  • TabPanel 定义

在这种情况下,如何在“MainPanel”控件中加载 URL?

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>

CodeBehind 从 SiteMap 填充 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>

【问题讨论】:

    标签: c# asp.net ext.net


    【解决方案1】:

    您可以通过两种方式做到这一点:

    1) 客户端:

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

    2) 通过服务器端的 DirectEvent 或 DirectMethod:

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

    【讨论】:

    • 我应该在哪些情况下使用上述方法?
    【解决方案2】:

    以下示例演示了它(“加载 Google”按钮) http://examples.ext.net/#/Panel/BodyMask/Standard_Mask/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      • 2013-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多