TreeNodes (つまり、フォルダ) をユーザーが編集できるようにすることはできますか? TreeNode クラスに editable というオプションがあることがわかりましたが、それを機能させることも、その使用例を見つけることもできませんでした。
私のもう 1 つのクエストは、入力ボックスをノードに配置して、ユーザーが各アイテムに数字を入力できるようにすることです。どうすればいいですか?
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);
});
そこで NumberField を使用したので、そこには数字のみを入力できます。
また、すべての TreeNode (はい、あなたが言及したもの)のeditable
プロパティを使用するか、TreeEditorのbeforestartedit
イベントを使用して、エディションを制限できます。
te.on('beforestartedit', function(ed, boundEl, value) {
if (ed.editNode.leaf)
return false;
});
jsbin.com/ExtJS-TreeEditor/2には、 Sencha の Checkbox TreePanel の例に基づいて作成したライブの例があります。違いは、私の例のフォルダー ノードを編集できることです。
フォルダを選択して、そのフォルダをもう一度クリックすると、エディタ (NumberField) がフォルダ名の上に表示されます。