0

TreeGrid 内にツリーがあり、ツリーには異なるノードがあります。

私が望むのは、選択したレコード (レコードを持っています) を特定のノード (つまり、お気に入りのノード) 内に追加することです。

私が達成できるのは、TreeGrid 内にレコードを追加することだけですが、特定のノード内に挿入する必要があります (treeGrid の最初のノードとしましょう)。

どうすればこれを達成できますか?

コードスニペット:

private AnimateTreeNode favoriteNode = new AnimateTreeNode("My Favorites");

    TreeGrid clientTreeGrid = new TreeGrid(); 
    Tree clientTree = new Tree(); 

    clientTree.setModelType(TreeModelType.CHILDREN);  
    clientTree.setNameProperty("My space");  
    clientTree.setRoot(new AnimateTreeNode("fav",favoriteNode);

    clientTreeGrid.setData(clientTree);  
    clientTreeGrid.setCanReparentNodes(false);  
    clientTreeGrid.setSelectionType(SelectionStyle.SINGLE);

    favoritesMenuItem.addClickHandler(new ClickHandler() {  
    public void onClick(MenuItemClickEvent event) {  
        UserRecord record = (UserRecord) userGrid.getSelectedRecord();
        categoryTree.addData(record);        
    }  
});
4

2 に答える 2

1

UserRecord は、他のコンポーネント、つまり UserGrid からのレコードのようです。ここでできることは、選択したレコードからの情報からノードを形成し、それをツリーに追加することです。それがあなたのために働くかどうか私に知らせてください。

編集:次のコード スニペットがさらに役立つ場合があります。

TreeGrid sampleTreeGrid = new TreeGrid();
    sampleTreeGrid.setShowHeader(false);
    TreeGridField sampleTreeGridField = new TreeGridField("testMenu", " ");

    TreeNode rootNavNode = new TreeNode("root");
    rootNavNode.setAttribute("testMenu", "root");

    TreeNode testNode = new TreeNode();
    testNode.setTitle("Test Node");
    testNode.setAttribute("testMenu", "Test Node");



    Tree mainTree = new Tree();
    mainTree.setRoot(rootNavNode);

    mainTree.setModelType(TreeModelType.PARENT);
    mainTree.setNameProperty("mainTreeTitle");
    mainTree.add(testNode, mainTree.getRoot());

    sampleTreeGrid.setData(mainTree);
    sampleTreeGrid.setFields(sampleTreeGridField);

ここで重要なのは、作成したノードを割り当てることです。TreeGrid にレコードを直接追加しないでください。ユーザー グリッドから選択したレコードから新しいツリー ノードを作成し、そのノードを目的の場所に追加する必要があります。

于 2013-01-09T08:14:26.180 に答える
0

選択したレコードを読み取り、関心のあるレコードのフィールドの値で新しいノードのさまざまな属性を設定する必要があります。その後、新しいノードを に追加し、Treeツリーグリッドのデータを に設定しますTree。いくつか追加したい場合、ノードはタイトル、名前 ID、および属性を取得します。AListGridRecordにはこれらの属性がありません。これを自動的に行う方法はないと思います。

于 2013-01-10T14:12:25.577 に答える