添加new Ext.tree.TreeEditor(yourTree);
足以使树可编辑。
但是您可以使用其他 2 个构造函数参数来定义更多内容:
var te = new Ext.tree.TreeEditor(tree, new Ext.form.NumberField({
allowBlank: false,
blankText: 'A number is required'
}), {
editDelay: 100,
revertInvalid: false
});
te.on("complete", function(node) {
alert(node.startValue + ' -> ' + node.editNode.text);
});
Run Code Online (Sandbox Code Playgroud)
我在那里使用了 NumberField,因此您只能在其中输入数字。
您可以通过使用每个 TreeNode 的editable
属性(是的,就是您提到的那个)或使用TreeEditor 的beforestartedit
事件来限制版本:
te.on('beforestartedit', function(ed, boundEl, value) {
if (ed.editNode.leaf)
return false;
});
Run Code Online (Sandbox Code Playgroud)
在jsbin.com/ExtJS-TreeEditor/2您有一个我基于Sencha 的 Checkbox TreePanel 示例制作的实时示例,不同之处在于您可以编辑我的示例中的文件夹节点。
只需选择一个文件夹,然后再次单击该文件夹,编辑器(数字字段)就会出现在文件夹名称上方。