gpt4 book ai didi

javascript - 如何以编程方式检查按钮单击上的真正 extjs 树面板复选框?

转载 作者:行者123 更新时间:2023-11-28 08:38:58 29 4
gpt4 key购买 nike

我有一个 Extjs 树面板,我在其中添加了多个层。另外,我有一个包含搜索按钮的搜索面板。单击搜索按钮时,它会在 extjs GridView 中返回结果。

我想通过单击 gridviews 行来显示图层,并将树面板的复选框动态或以编程方式设置为 true
我添加了树面板,例如

var layerTree = new Ext.tree.TreePanel({
border: true,
root: layerList,
split: true,
containerScroll: true,
collapseMode: "mini",
autoScroll: true,
loader: new Ext.tree.TreeLoader({
applyLoader: false,
uiProviders: {
"layernodeui": LayerNodeUI
}
}),
root: {
nodeType: "async",
children: Ext.decode(treeConfig)
},
listeners: {
"radiochange": function(node) {}
},
rootVisible: false,
lines: false

});

我想要layernode.checked=true

谢谢你说的阿卡图姆

在网格配置中,您需要为 itemclick 事件设置监听器,当用户单击网格中的行时会触发该事件。在此监听器中,您需要从行记录中获取有关图层的信息。然后就可以通过Ext.data.TreeStore getNodeById方法找到树中的图层节点,并将其checked属性设置为true

因此,在您的网格配置中,您将拥有:

listeners: {
itemclick: function(c, record) {
// get layer id from clicked row record
var layerId = record.get('layerId');

// find layer node in tree by layer id
var node = layerTree.getStore().getNodeById(layerId);

// set node checked attribute to true
node.set('checked', true);
}
}

我尝试了你的代码,但它不起作用。我已在我的代码中添加了您建议的代码,如下所示

var grid = new Ext.grid.GridPanel({
store: new Ext.data.JsonStore({
fields: action.result.fields,
listeners: {
load: function() {
setTimeout(function() {
grid.getSelectionModel().selectFirstRow();
}, 100);
}
}
}),
frame: true,
columns: action.result.columns,
stripeRows: true,
listeners: {
itemclick: function(c, record) {
var layerId = record.get('layerId');
var node = layerTree.getStore().getNodeById(layerId);
node.set('checked', true);
}
}
});

最佳答案

在网格配置中,您需要为 itemclick 设置监听器事件,当用户单击网格中的行时触发该事件。在此监听器中,您需要从行记录中获取有关图层的信息。然后你可以通过Ext.data.TreeStore找到树中的图层节点 getNodeById方法并将其检查属性设置为 true

因此,在您的网格配置中,您将拥有:

listeners: {
itemclick: function(c, record) {
// get layer id from clicked row record
var layerId = record.get('layerId');

// find layer node in tree by layer id
var node = layerTree.getStore().getNodeById(layerId);

// set node checked attribute to true
node.set('checked', true);
}
}

关于javascript - 如何以编程方式检查按钮单击上的真正 extjs 树面板复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20726448/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com