2015-04-16 2 views
0

Я использую Dynatree (Ver: 1.2.7) для создания иерархического многоэкранного выбора. Флажки и выберите вариант 3, указанный на его сайте.Dynatree, родительский узел не отмечен, даже все дочерние элементы отмечены

У меня есть родительское структуру ребенка, как показано ниже:

var treeData = [ 
{title: "TST", key: "TST" }, 
{title: "A1", key: "a1",expand: true, 
    children: [ 
     {title: "A2", key: "a2" ,expand: true , 
     children: [ 
       {title: "A3", key: "a3" } 
      ] 
     }  
    ] 
    }, 
]; 

В основном:

A1 
| 
A2 
    | 
    A3 

Теперь то, что мне нужно было, что если я выбрать A1 все Чайлдс под ним должен выбран (т.е. флажки отмечены). Это прекрасно работает.

Но если я выбрать на A3 должен выбран только A3. Здесь, как A3 является единственным ребенком A2 и A2 единственный ребенок A1, поэтому, когда я выбираю A3 все из них, чтобы быть отобранным. то есть выбираются только A2 и A1.

Я понимаю, что это иерархическая структура, поэтому, если я выберу все дочерние элементы родителя, сам родитель будет выбран.

Но есть ли параметр, который меняет вещь так, как вы ищете?

ответ

0

Был в состоянии решить эту проблему. Вместо selectMode: 3 использование selectMode: 2.

Затем в выберите Функция обратного вызова перебирает дочерние элементы и выбирает/отменяет их выбор на основе родителя, как показано ниже.

select : function(event, data) { 
    data.node.visit(function (childNode) {   
    childNode.setSelected(data.node.selected); 
});