4
tree.dynatree({
        initAjax: {
            url: "../Users/GetTree"
        },
        checkbox: true,
        selectMode: 2,
        fx: { height: "toggle", duration: 200 },
        persist: true,
        clickFolderMode: 1,
        autoFocus: false,

         onClick: function (node, event) {
           ....
         }
   }    

サーバー側にはクラス TreeNode があります

 public class TreeNode
 { 
      .....

      public TreeItemsAttr attr { get; set; }

      public string addClass { get; set; }
 }

およびクラス TreeItemsAttr

 public class TreeItemsAttr
{
    public string id { get; set; }

    public bool canHaveSubs { get; set; }

    public bool selectable { get; set; }

    public bool isSelected { get; set; }

    public string docDate { get; set; }
}

したがって、私のアクションでは、いくつかのツリーノードをセットアップしてisSelected=trueclass を追加addClass="dynatree-selected"しましたが、呼び出すnode.tree.getSelectedNodes()[].

いくつかのノードが選択されるようにサーバー側でセットアップするにはどうすればよいですか?

また、TreeNode プロパティの選択と設定を true に追加しようとしましたが、役に立ちませんでした。

4

2 に答える 2

1

dynatreeドキュメントページ(セクション:5.3選択イベントの処理)には、その目的のサンプルがあります。

onSelect: function(flag, node) {
        if( ! flag )
            alert("You deselected node with title " + node.data.title);
        var selectedNodes = node.tree.getSelectedNodes();
        var selectedKeys = $.map(selectedNodes, function(node){
            return node.data.key;
        });
        alert("Selected keys: " + selectedKeys.join(", "));
    }

結果ページは次のとおりです。http ://wwwendt.de/tech/dynatree/doc/sample-select.html

この方法はクライアント側で機能しますが、選択した変数をサーバーに送信できると思います。

于 2012-07-31T19:00:19.467 に答える
1

Alper の例に従った後、selectedKeys を隠しフィールドに保存して、それらの値をサーバー側で利用できるようにすることができます。

var arraySelKeys = selectedKeys.toString().split(",");
$("[id$=_hdnSelKeys]").val(arraySelKeys.toString());
于 2012-08-09T13:52:46.960 に答える