Я новичок в Ext.net с mvc 4. Я пытаюсь создать макет с помощью панели дерева и панели вкладок. Когда я узел на листовом узле на панели дерева, я хочу загрузить страницу с помощью ajax в качестве новой вкладки.Использование прямых событий на конкретном узле для ext.net treepanel
Сначала я использовал следующий код для загрузки новых вкладок с помощью прослушивателей, но он загружается в 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");
})
Итак, есть ли способ сделать directevents в узле?
Спасибо, прежде.
Какой объект делает o там? Я попробовал, но не видел, чтобы он передавался как параметр для URL-адреса или URL-адреса. –
моя ошибка, я использовал тот же url. спасибо, это решило это :) –