Остановка изменяемого размера столбцов в jqgrid - PullRequest
6 голосов
/ 18 мая 2011

Как я могу сделать все столбцы jqgrid не изменяемого размера? В настоящее время я думаю, что в каждом столбце нужно указывать свойство {resizable: false}. Можно ли как-то указать всю сетку?

Ответы [ 2 ]

14 голосов
/ 18 мая 2011

Начиная с версии 3.8.2, jqGrid поддерживает одну очень полезную функцию: шаблоны столбцов .(Вероятно, я не совсем правильно хвалить эту функцию, потому что эта функция была представлена ​​на моем собственном предложении :-)).Эта функция до сих пор не документирована, но ее очень легко использовать.

Я объясню это на примере.Если вы определите дополнительный параметр jqGrid

cmTemplate:{resizable:false}

, тогда ваша проблема будет решена.

Если у вас есть дополнительные свойства, которые являются общими для всех столбцов из colModel элементовНапример, align:'center' cmTemplate также поможет вам (cmTemplate: {resizable: false, align: 'center'}).В jqGrid 3.8.2 была небольшая ошибка в приоритете настроек шаблона относительно настроек из colModel, но ошибка исправлена ​​в jqGrid 4.0.0.Таким образом, свойства из cmTemplate могут интерпретироваться так же, как значения по умолчанию для colModel элементов .

Еще одна версия шаблона столбца jqGrid для использования имеет вид:

var myDateTemplate = {sorttype:'date', formatter:'date',
                      formatoptions: {newformat:'m/d/Y'}, datefmt: 'm/d/Y',
                      align:'center', width:80 }
$("list").jqGrid({
    colModel: [
        ...
        {name:'column1': template:myDateTemplate},
        {name:'column2': template:myDateTemplate, width:90},
        ...
    ]
    ...
});

Таким образом, вы можете определить некоторые шаблоны (например, myDateTemplate) и использовать их во многих местах вашей сетки (или gids).С учетом этой функции вы можете сделать свой код короче, лучше читаемым и легко изменяемым.

0 голосов
/ 23 августа 2012

Шаблон отлично работает для меня:

 { name: 'quantity_warehouse', index: 'quantity_warehouse', template: intColTemplate, width: '70' },

 { name: 'status', index: 'status', align: 'left', template: stringColTemplate, width: '90' },

 { name: 'snapshot_at', index: 'snapshot_at', template: dateColTemplate },

 { name: 'applied_at', index: 'applied_at', template: dateColTemplate },

JS:

var dateColTemplate = { align: 'left', search: true, stype: 'text', width: '70', datefmt: 'm/d/y', formatter: 'date', formatoptions: { srcformat: 'm/d/y', newformat: 'm/d/Y' }, sorttype: 'date', searchrules: { required: true, date: true }, searchoptions: { sopt: ['eq', 'ge', 'le'],

    dataInit: function (el) {
        $(el).datepicker({ changeYear: true, changeMonth: true, showButtonPanel: true });
    }
}
};
var intColTemplate = { align: 'left', search: true, stype: 'text', searchoptions: { sopt: ['eq', 'ge', 'le']} };
var stringColTemplate = { align: 'left', search: true, stype: 'text', searchoptions: { sopt: ['bw', 'cn']} };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...