在ExtJS拖放树上,使用drop或beforedrop侦听器似乎不会启动
我在extjs中有一棵树。我已经添加了拖放插件,这些功能在浏览器中很好,但我需要将拖放更改发送到我的DB正确吗?要做到这一点,我认为我应该先监听drop事件,然后对后端进行ajax调用。 我有一个checkchange事件,它触发OK,但一滴或一滴之前似乎什么都不做 这是我的树的配置,我做错了什么在ExtJS拖放树上,使用drop或beforedrop侦听器似乎不会启动,extjs,drag-and-drop,tree,listener,Extjs,Drag And Drop,Tree,Listener,我在extjs中有一棵树。我已经添加了拖放插件,这些功能在浏览器中很好,但我需要将拖放更改发送到我的DB正确吗?要做到这一点,我认为我应该先监听drop事件,然后对后端进行ajax调用。 我有一个checkchange事件,它触发OK,但一滴或一滴之前似乎什么都不做 这是我的树的配置,我做错了什么 todotree = { title: 'Tree Grid', width: 600, height: 400, viewConfig: { plug
todotree = {
title: 'Tree Grid',
width: 600,
height: 400,
viewConfig: {
plugins: {
ptype: 'treeviewdragdrop'
}
},
store: new Ext.data.TreeStore({
storeId: 'treestore',
fields: [{
name: 'actionTitle',
type: 'string'
}],
proxy: {
type: 'ajax',
url: 'index.php/todo/listtree',
reader: 'json'
}
}),
rootVisible: false,
columns: [
{
xtype: 'treecolumn',
text: 'Title',
flex: 3,
dataIndex: 'actionTitle'
}],
listeners: {
checkchange: function(node, checked){
Ext.Ajax.request({
url: 'index.php/todo/togglecheck/' + node.data.recordId + '/' + checked,
success: function() {}
});
},
drop: function(){ alert("drop") },
beforedrop: function(){ alert("beforedrop") }
}
}
提前谢谢
编辑:
我也尝试了这个配置,但没有用。我想我不明白这是怎么回事
...
beforedrop: function(node, data, overModel, dropPosition, dropFunction){
alert("beforedrop");
dropFunction = function(){
alert('dropFunction');
};
}
...
这些事件由树视图触发,您正在面板上添加侦听器。这应该起作用:
todotree = {...
viewConfig: {
listeners: {
beforedrop: function () {}
}
}
}
非常感谢你。这正是我所需要的。这需要放在面板中,而不是放在树顶上,答案的措辞有点无法理解。
node
参数(beforedop(node,data,overModel,dropPosition,dropFunction,eOpts)
)是给我一个HTML标记(
)。我怎样才能移动TreeNode?