2013-02-15 4 views
0

У меня есть два списковых списка пользователей Kendo. Я могу получить список доступных параметров для загрузки и отображения значений. Я также могу использовать функцию перетаскивания. Проблема заключается в функциональности отбрасывания адресата. Я могу получить второй ListView для регистрации в качестве dropTarget, но я не могу определить, как добавить перетаскиваемый в целевой ListView.Kendo UI ListView Drag - Drop

Вот соответствующий код:

var groupDataSource = getReadGroupsDataSourceFor(2819); 

    try { 
     var readgroups = $("#availableReadGroups").kendoListView({ 
      selectable: "single", 
      navigatable: false, 
      template: "#if(!IsSelectedGroup) {# <div style='font-size:13px;padding-left:5px;padding-top:5px;'>${GroupName}</div>#} else {# <div class=\"k-state-selected\" style=\"font-size:13px;padding-left:5px;padding-top:5px;\" aria-selected=\"true\">${GroupName}</div> #}#", 
      dataSource: groupDataSource 
     }); 

     var selectedGroups = $("#selectedGroupsValues").kendoListView({ 
      selectable: "single", 
      navigatable: false, 
      template: "#if(!IsSelectedGroup) {# <div style='font-size:13px;padding-left:5px;padding-top:5px;'>${GroupName}</div>#} else {# <div class=\"k-state-selected\" style=\"font-size:13px;padding-left:5px;padding-top:5px;\" aria-selected=\"true\">${GroupName}</div> #}#", 
     }); 

     readgroups.kendoDraggable({ 
      filter: "div[role=option]", 
      hint: function (row) { 
       return row.clone(); 
      } 
     }); 

     selectedGroups.kendoDropTarget({ 
      drop: function (e) { 
       var lvObject= selectedGroups.data(); 
       lvObject.kendoListView.dataSource.add(e.draggable); 
      } 
     }); 
    } catch (err) { 
     alert(err); 
    } 
+0

Вы код выглядит нормально, событие перебора - это все, что вам нужно. Можете ли вы привести полный пример в jsfiddle? Тогда я мог бы проверить это и дать дополнительную помощь. –

+0

Спасибо, что посмотрели на него. Вот ссылка jsFiddle: http://jsfiddle.net/TheNephalim/4w2Pw/1/ – DerHaifisch

ответ

1

я, наконец, пришел с ответом и получил его на работу в IE и FireFox на моей машине; Однако я не мог заставить это решение работать в jsFiddle, и я не могу понять, почему.

Вот код:

selectedGroups.kendoDropTarget({ 
     drop: function (e) { 
      var lvObject= selectedGroups.data(); 
      lvObject.kendoListView.dataSource.add(readgroups.data("kendoListview").dataSource.getByUid(e.draggable.hint.data().uid)); 
     } 
    }); 

Свойство подсказка, по-видимому, содержит объект JQuery, который в свою очередь, имеет метод передачи данных. Когда вы выполняете метод данных, возвращается только объект с свойством uid. Используя это, вы можете выполнить поиск источника данных перетаскиваемого источника для элемента данных. Элемент данных - это то, что вы хотите предоставить методу добавления источника данных назначения.