Кендо сетка проведите пальцем во время выполнения - PullRequest
0 голосов
/ 26 сентября 2018

Я хочу провести два последовательных пальца. Ниже моя сетка кендо. После 1-го нажатия на кнопку вниз 1-го ряда все работает нормально (меняются первые две строки), но при следующем нажатии на кнопку вниз 1-го ряда снова это не работает, какЯ ожидал (эта смена этапов произошла между 2-й и 3-й строкой), потому что я изменил seqNo и отсортировал сетку по seqNo, но индекс остался прежним.

enter image description here

Код

 vm.gridOptions =
        {
            dataSource: vm.dataSource,
            sortable: false,
            selectable: true,
            filterable: false,
            scrollable: true,
            pageable: false,
            height: 222,
            columns:
            [
                { title: "...", width: "4%", headerAttributes: { style: "font-weight:bold;text-align:center;" }, attributes: { style: "text-align:center;" }, template: "<span ng-click='vm.downItem(dataItem)' class='btn btn-success btn-xs glyphicon glyphicon-arrow-down' />" },
                { field: "code", title: "Code", width: "10%", headerAttributes: { style: "text-align:center;font-weight: bold;" }, attributes: { style: "text-align:center;" } },
                { field: "name", title: "Name", width: "25%", headerAttributes: { style: "font-weight: bold;" } },
                { field: "reportOrder", title: "Seq No", width: "6%", headerAttributes: { style: "text-align:center;font-weight:bold" }, attributes: { style: "text-align:center;margin:0;padding:1px;" }, template: "<input type='number' class='editable-grid-entry' placeholder='Report Order...' style='text-align:center;width:100%;box-sizing:border-box;' ng-model='dataItem.reportOrder'/>" },
            ]
        };

this.downItem = function ( dataItem )
    {
        var index = vm.dataSource.indexOf( dataItem );
        var totalRow = vm.dataSource._data.length;

        var holdSeq = vm.dataSource._data[index + 1].reportOrder;
        vm.dataSource._data[index + 1].reportOrder = dataItem.reportOrder;
        vm.dataSource._data[index].reportOrder = holdSeq;

        vm.dataSource.sort( { field: "reportOrder", dir: "asc" } );
    }

Пожалуйста, помогите мне, где я должен исправить или предложите мне решение, чтобы провести два последовательных пальца сИзменение последовательного номера

1 Ответ

0 голосов
/ 26 сентября 2018

попробуйте

  this.downItem = function ( dataItem )
    {
        var index = vm.dataSource.indexOf( dataItem );
        var downItemValue = dataItem.reportOrder;

        for ( var rowIdx = 0; rowIdx < vm.dataSource._data.length; rowIdx++ )
        {
            if ( vm.dataSource._data[rowIdx].reportOrder == ( dataItem.reportOrder + 1 ) )
            {
                vm.dataSource._data[index].reportOrder = vm.dataSource._data[rowIdx].reportOrder;

                vm.dataSource._data[rowIdx].reportOrder = downItemValue;
                break;
            }

        }

        vm.dataSource.sort( { field: "reportOrder", dir: "asc" } );
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...