在 ext.net 树面板的特定节点上使用直接事件

Posted

技术标签:

【中文标题】在 ext.net 树面板的特定节点上使用直接事件【英文标题】:Using direct events on specific node for ext.net treepanel 【发布时间】:2013-07-05 01:49:00 【问题描述】:

我是使用 mvc 4 的 Ext.net 新手。我正在尝试使用树形面板和选项卡面板创建布局。当我在树面板上的叶节点上的节点时,我想使用 ajax 作为新选项卡加载页面

起初我使用以下代码加载带有侦听器的新选项卡,但它加载到 iframe 中。我希望它作为 div 加载,但我无法让它工作,所以我改为使用直接事件。

<script>
var mainContainerAddTab = function (tabPanel, id, url, menuItem) 
    var tab = tabPanel.getComponent(id);

    if (!tab) 
        tab = tabPanel.add(
            id: id,
            title: menuItem.raw.text,
            closable: true,
            loader: 
                url: url,
                renderer: 'html',
                loadMask: 
                    showMask: true,
                    msg: 'Loading ' + menuItem.raw.text + '...'
                
            
        );

        tab.on('activate', function (tab) 
            var panel = App.MenuTreePanel;
            panel.getSelectionModel().select(panel.getStore().getNodeById(id));
        );
    

    tabPanel.setActiveTab(tab);

</script>

我已成功使用下面的代码加载包含直接事件的新选项卡,但我没有做的是获取每个节点的 url。

X.TreePanel()
.ID("MenuTreePanel")
.Model(Html.X().Model()
    .Fields(
        new ModelField("url")
    )
)
.Root(
    X.Node().Text("Menu").Expanded(true).Children(
        X.Node()
            .NodeID("ndGadgetTracker")
            .Text("Gadget Tracker")
            .Leaf(true)
            .CustomAttributes(c =>  c.Add(new ConfigItem("url", Url.Action("create", "gadgettracker", null, "http"))); ),
    )
)
.DirectEvents(tpde =>

    tpde.Select.Url = Url.Action("create", "gadgettracker");
)

那么,有没有办法在节点中制作直接事件?

之前谢谢。

【问题讨论】:

【参考方案1】:

您的问题的直接答案是无法将 DirectEvents 直接附加到节点。

但是使用 TreePanel 的 Select 事件确实是您所需要的。您可以在其 Before 处理程序中修改 DirectEvent 的 Url。

tpde.Select.Url = Url.Action("create", "gadgettracker");
tpde.Select.Before = "o.url = record.get('url');" // "record" is a selected node 

【讨论】:

o 在那里指的是什么对象?我试过了,但没有看到它作为 url 或 url 的参数传递。 我的错误,我使用的是相同的网址。谢谢,这解决了它:)

以上是关于在 ext.net 树面板的特定节点上使用直接事件的主要内容,如果未能解决你的问题,请参考以下文章

ExtJs 树面板。如何滚动到节点

在 ExtJs 4.1 中选择树面板的第一个叶节点

Ext.Net学习笔记22:Ext.Net Tree 用法详解

Ext.Net 3.2 - 全彩色网格面板单元格

渲染 Grid 面板 Ext.Net 的最后一列

如何告诉树面板再次呈现记录?