jqGrid - как изменить заголовок на основе сортируемого свойства colModel - PullRequest
0 голосов
/ 16 ноября 2010

Когда указатель мыши находится над каждым столбцом, я бы хотел, чтобы подсказка указывала, можно ли сортировать этот столбец.
Я могу изменить атрибут title примерно так:

$("#List .ui-th-column").each(function(i) { 
    var isSortable = i % 2;
    $(this).attr('title', isSortable ? "Not Sortable" : "Click header to sort."); 
});

Я хотел бы заменить демонстрационное выражение 'i% 2' проверкой свойства sortable colMode, но я не могу понять, как получить значение сортируемого свойства colModel.

colModel: [ { name: 'Name', index: 'Name', width: 100, sortable: true  },
            { name: 'Note', index: 'Note', width: 200, sortable: false } ]

Я пробовал .getGridParam и .getColProp, но я не думаю, что синтаксис, который я использую, правильный.

Ответы [ 2 ]

0 голосов
/ 17 ноября 2010

Это хорошо работает. спасибо за помощь Олег.

$("#gbox_List .ui-th-column").each(function(i) {
    var col = grid.getGridParam('colModel'); 
    var isSortable = grid.jqGrid("getColProp", col[i].name).sortable;
    $(this).attr('title', isSortable ? "Click header to sort by column." : "Not Sortable"); 
});

Вы были правы относительно того, что $ (# List не находится в правильном месте в DOM, это должно было быть # gbox_List - дополнительная информация прояснила это.

Мне пришлось использовать .ui-th- столбец , а не .ui-th- label , чтобы .each зацикливался на каждом столбце.

Мне удалось избежать жесткого кодирования имени столбца с помощью grid.getGridParam ('colModel') , чтобы вернуть массив, а затем извлечь свойство .name из этого за каждый столбец.

Это решение хорошо, потому что у меня ~ 20 сеток, каждая с множеством несортируемых столбцов и необходимость иметь разные строки для каждого несортируемого столбца, было бы грязно. Теперь я могу воспользоваться возможностью сортировки свойств в colModel.

0 голосов
/ 17 ноября 2010

Чтобы получить значение свойства sortable, как и любого другого свойства, из определения столбца, вы можете сделать следующее:

var grid=$("#list");
var propsName = grid.jqGrid('getColProp','Name');
var propsNote = grid.jqGrid('getColProp','Note');
alert("'Name' has sortable="+propsName.sortable+
      "\n'Note' has sortable="+propsNote.sortable);

Чтобы установить всплывающую подсказку для заголовка столбца, выполните следующие действия:

var setTooltipsOnColumnHeader = function (grid, iColumn, text) {
    var thd = $("thead:first", grid.hdiv)[0];
    $("tr th:eq(" + iColumn + ")", thd).attr("title", text);
};
var grid=$("#list");
setTooltipsOnColumnHeader(grid,2,"Bla Bla!");

Здесь мы идентифицируем столбец по индексу видимых столбцов.

Вы можете легко переписать примеры кода для своей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...