使用AngularJs在KendoUI Grid上拖放行

时间:2015-04-07 22:41:59

标签: angularjs kendo-ui kendo-grid kendo-draggable

如何在使用AngularJs拖放的KendoUI Grid中创建一行?

文档说你必须使用过滤器初始化可拖动组件,即“tbody> tr”,但我不明白如何在行上应用kendo-draggable指令。

这就是我初始化kendo-grid的方式:

<div 
    kendo-grid
    k-options="activityGridOptions"
    k-rebind="activityGridOptions"
></div>

2 个答案:

答案 0 :(得分:1)

解决方案是在配置对象上定义rowTemplate和altRowTemplate,并在html中添加模板,如下所示:

<!-- Grid row template -->
<script type="text/x-kendo-template" id="grid-row-template">
    <tr data-uid="#= uid #" draggable draggable-data="dataItem" draggable-type="'planner.activity'" ng-class="{'current-item': currentActivityId == dataItem.SyncTableUniqueId}" ng-click="setCurrentActivity(dataItem)">
        <td>{{dataItem.AvtaleNr}}.{{dataItem.VareLøpenummer}}</td>
        <td>
            {{dataItem.Date| moment:'ll'}} {{dataItem.Time| moment:'HH:mm':'HH:mm:ss'}}
        </td>
        <td>{{dataItem.FirstName}}</td>
    </tr>
</script>

您可能会注意到,我正在使用非kendo draggable指令。 rowTemplate和altRowTemplate在我的控制器中分配:

$scope.activityGridOptions = {
    dataSource: $scope.gridDataSource,
    // ...
    rowTemplate: kendo.template($("#grid-row-template").html()),
    altRowTemplate: kendo.template($("#grid-row-template").html())
};  

答案 1 :(得分:1)

除了上面的答案,你可以尝试使用这个angular指令:

https://github.com/neoziro/angular-draganddrop