ui-grid-draggable-rows - row不动

时间:2015-11-12 18:11:58

标签: javascript asp.net angularjs angular-ui-grid

我正在尝试实施ui-grid-draggable-rows,因此我可以在我的网格中移动行。我正在使用demo中的JavaScript。我可以成功拖动该行,并将其放在新位置,但拖动的行不会停留在新位置。拖动后,网格内容与之前相同。

正如您在控制台中看到的那样,索引(通过拖动行创建)是正确的。

enter image description here

还有其他人遇到过这个吗?有修复吗?

我的HTML:

<div id="container" class="PageContainer">
    <h2 class="mainHeader">Variables</h2>
    <div class="OneOfTwo">
        <div class="gridHalf" ui-grid="gridVariableGroups" ui-grid-selection ui-grid-draggable-rows ng-hide="loading"></div>
    </div>
    <h2 class="footer">
        <button ng-click="editTask();" ng-disabled="loading">Edit</button>
    </h2>
</div>

这是我的角度控制器中的代码:

function variableGroupsController($scope, $http, $routeParams, uiGridConstants) {
    $scope.loading = 1;

    $scope.myData = [{ 'Name': 'Name1', 'Snuh': 'Snuh1' },
                  { 'Name': 'Name2', 'Snuh': 'Snuh2' },
                  { 'Name': 'Name3', 'Snuh': 'Snuh3' }];

    $scope.gridVariableGroups = {
        multiSelect: false,
        enableRowHeaderSelection: false, // We don't want to have to click a row header to select a row. We want to just click the row itself.
        // Got the row template from https://github.com/cdwv/ui-grid-draggable-rows:
        rowTemplate: '<div grid="grid" class="ui-grid-draggable-row" draggable="true"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'custom\': true }" ui-grid-cell></div></div>',
        columnDefs: [{ field: 'Name', displayName: 'Name', width: "90%", resizable: true, sort: { direction: uiGridConstants.ASC, priority: 1 } },
                     { field: 'Snuh', displayName: 'Snuh', width: "8%" }]
    };

    $scope.gridVariableGroups.data = $scope.myData;

    $scope.loading = 0;

    $scope.gridVariableGroups.onRegisterApi = function (gridApi) {
        gridApi.draggableRows.on.rowDropped($scope, function (info, dropTarget) {
            console.log("Dropped", info);
        });
    };
}

1 个答案:

答案 0 :(得分:0)

不确定您是否已经解决了该问题,但看起来您已对该列进行了排序。排序保持有效(猜测ui-grid使用AngularJS双向数据绑定来实现此目的)但移动是一次性操作。因此,即使您的行动有效,也会立即进行纠正。通过排序,你无法注意到它。