问题
When a user selects one or many rows in my tree, I would like to set the row's IDs onto the url of my store proxy. Here is my current code:
var treePanel = Ext.create('Ext.tree.Panel', {
id: 'tree-panel',
title: 'Taxonomy',
region:'west',
collapsible: true,
split: true,
multiSelect: true,
height:'100%',
width: '20%',
minWidth: 100,
rootVisible: false,
autoScroll: true,
store: store,
viewConfig: {
allowCopy: true,
plugins: {
ptype: 'treeviewdragdrop',
appendOnly: true,
ddGroup: 'selDD'
}
}
});
And here is the code where I am setting the 'select' event:
treePanel.getSelectionModel().on('select', function(selModel, record) {
var selectedNode = treePanel.getSelectionModel().getSelection();
if (multiSelect,true) {
treeID=selectedNode[0].data.id;
//if(treeID = 'null'){
store1.proxy.url='json/json.php?taxee_id=<?php echo $taxe_id;?>&id=' + selectedNode[0].data.id ;
store1.load();
}
else
{
store1.proxy.url='json/json.php?taxee_id=<?php echo $taxe_id;?>&id=' + selectedNode[0].data.id + '&id1='+ selectedNode[1].data.id ;
store1.load();
}
});
回答1:
This will work for you if that is your only problem:
treePanel.getSelectionModel().on('select', function(selModel, record) {
var selectedNode = treePanel.getSelectionModel().getSelection();
if(selectedNode.length > 0)
{
var proxyUrl = 'json/json.php?taxee_id=<?php echo $taxe_id;?>&id=' + selectedNode[0].data.id;
for(var i = 1; i < selectedNode.length; i++)
proxyUrl += '&id' + i + '='+ selectedNode[i].data.id;
store1.proxy.url = proxyUrl;
store1.load();
}
});
来源:https://stackoverflow.com/questions/15384565/pass-two-id-s-in-extjs-4-tree-multiselect-and-pass-one-id-in-single-click