2013-11-20 4 views
2

Используя JQGrid, можно ли установить colModel по умолчанию, чтобы предотвратить повторение кода? Например вместоУстановить значение по умолчанию colModel

colModel: 
[ 
{name:'name',index:'name',width:80,align:center}, 
{name:'license',index:'license',width:80,align:center}, 
{name:'birthday',index:'birthday',width:80,align:center} 
] 

Мы могли бы просто установить width:80 и align:center быть значения по умолчанию и просто сделать

colModel: 
[ 
{name:'name',index:'name'}, 
{name:'license',index:'license'}, 
{name:'birthday',index:'birthday'} 
] 

ответ

2

Да, это вполне возможно. См. Этот параметр jQGrid: cmTemplate

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

Например, мы установим ширину по умолчанию каждого столбца в 80 и выравнивание к center:

$('#myGrid').jqGrid({ 
    cmTemplate: { 
     width: 80, 
     align: 'center' 
    }, 
    // the rest of your jqgrid setup here 
}); 

теперь в вашем colModel, каждый столбец будет иметь ширину по умолчанию 80 и будет center выровнены. Вы можете, конечно, переопределить настройки по умолчанию, которые вы только что настроили, если необходимо, в данном столбце.

+0

Ты велик! Я не мог поблагодарить вас. – jzeus

+0

@ V0R73X вы очень желанны! – FastTrack

0

Если у вас есть огромная решетка (которая содержит тысячи строк), то назначая Выровнять «центр» в cmTemplate не очень оптимальным, поскольку КАЖДЫЙ тд -tag будет содержать стиль как атрибута по это:

<td .. style="text-align: center" /> 

пытаются рассчитать накладные размер разметки на 1000 строк -> 1000 * 26 байт ~ 25kb

Я предпочел бы использовать CSS-класс:

.grid-centered-cells .ui-jqgrid tr.jqgrow td { text-align: center; } 

, который должен быть применен к контейнеру, который крышка сетки

<div class="grid-centered-cells"> 
    <table id="grid"></table> 
</div> 
Смежные вопросы