Флажок Treeview действует как кнопка радио - PullRequest
0 голосов
/ 30 апреля 2018

Пример диаграммы:

enter image description here

Я хочу, чтобы эта конкретная группа узлов действовала как радиопереключатель (нужно проверить только 1). Я знаю, что могу справиться с этим в жестких условиях кодирования, но я хочу сделать его расширяемым в будущем (добавив больше флажков), изменив его столбец json «Группа».

пример данных:

                      [
                        { id:"1", text: "Items", expanded: true, List: [
                            { id:"2",text: "book" ,group: 1},//group for radiobutton actions
                            { id:"3",text: "chair",group: 1 },
                            { id:"4",text: "table",group: 1 },
                            { id:"5",text: "mat", group: 0 },
                            { id:"6",text: "decor", group: 0}
                        ] }
                      ]

Я нашел это jsfiddle Пример использования атрибута группы для ссылок.

1 Ответ

0 голосов
/ 02 мая 2018

Это лучший (я думаю) способ сделать это:

1. Объявите массив идентификаторов, с которыми вы хотите сгруппировать:

var group = ["2","3","4"]; //in my example above

2. В событии check:

 if (group.indexOf(dataItem.ID) > -1) { //if the ID you clicked exists in the group
       group.splice(group.indexOf(dataItem.ID), 1); //remove the ID from the group
       for (var i = 0, j = treeview.length; i < j; i++) {
           for (var x = 0, y = treeview[i].List.length; x < y; x++) {
               if (group.indexOf(treeview[i].List[x].ID) > -1) { 
                   treeview[i].List[x].set("checked", false); //uncheck the members of the group
               }
           }
       }
   }
...