Как динамически зафиксировать столбец в сетке Wijmo?

Я могу установить статический индекс строки или столбца, добавив жестко закодированное значение индекса, но если пользователь хочет выбрать столбец, как мы можем сделать это с помощью нокаута js. В настоящее время я установил статический индекс столбца, но я хочу, чтобы пользователи могли выбирать столбец для замораживания.

var viewModel= function () {
        var self = this;           
        self.data = ko.observableArray([]);            
        self.recordCount = ko.observable(0);
        self.lowTotNoOfRec = ko.observable(0);
        self.pageSize = ko.observable(10);
        self.pageIndex = ko.observable(0);          
        self.paged = function (e, data) {
            self.pageIndex(data.newPageIndex);
        };
        self.staticColumnIndex = -1;

}.


person user2904389    schedule 22.06.2015    source источник


Ответы (1)


Предполагая, что вы создали собственный обработчик привязки для настройки сетки:

<table data-bind="wijgrid:gridConfig"></table>

И ваш gridConfig включает наблюдаемое для staticColumnIndex:

self.gridConfig = {
    //...other configuration stuff...
    staticColumnIndex: ko.observable(-1)
};

Затем init пользовательского обработчика привязки может подписаться на изменения в staticColumnIndex и обновить значение для сетки:

ko.bindingHandlers.wijgrid = {
    init: function (element, valueAccessor, allBindingsAccessor, data, context) {
        var options = valueAccessor() || {};
        var grid = $(element).wijgrid({
            cellClicked: function (e, args) {
                alert(args.cell.value());
            },
            allowPaging: true,
            pageSize: options.pageSize(),
            data: options.data(),
            columns: options.headers,
            scrollMode: "auto"
        });
        options.staticColumnIndex.subscribe(function (newValue) {
            grid.wijgrid({
                staticColumnIndex: newValue
            });
        });
    }
};

Демонстрация: http://jsfiddle.net/pvo4mk3c/

PS: Похоже, что если у вас есть индикатор стоп-столбца на графике, вы можете перетаскивать его вперед и назад. Эти изменения в моей демонстрации не влияют на наблюдаемое.

person Roy J    schedule 22.06.2015