设置默认colModel

时间:2013-11-20 03:20:13

标签: jquery jqgrid

使用JQGrid,是否可以设置默认的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:80align:center设置为默认值,然后执行

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

2 个答案:

答案 0 :(得分:2)

是的,这很有可能。请参阅jQGrid的此选项:cmTemplate

基本上,您可以定义希望colModel使用的任何默认属性。

例如,我们会将每列的默认宽度设置为80,并将对齐方式设置为center

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

现在,在您的colModel中,每列的默认宽度均为80,并且center会对齐。当然,如果需要在给定列中,您可以覆盖刚刚设置的默认值。

答案 1 :(得分:0)

如果你有一个巨大的网格(包含数千行),那么在 cmTemplate 中分配 align:'center'并不是非常理想,因为每个 td -tag将包含样式 - 属性,如下所示:

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

尝试计算1000行标记大小的开销 - &gt; 1000 * 26字节~25kb

我更喜欢使用css-class:

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

应该应用于覆盖网格的容器

<div class="grid-centered-cells">
    <table id="grid"></table>
</div>