将jqgrid属性放在一个公共变量中并重用它们?

时间:2015-04-15 20:00:07

标签: javascript jquery asp.net jqgrid

我在ASP.NET网页中有10个jqgrids,每个jqgrids都向用户显示不同的数据。

除colNames,colModel,pager和sortname属性外,所有其他属性都相同。请参阅下面的代码,

  datatype: "local",
        mtype: "GET",
        cmTemplate: { sortable: true, resizable: true },
        height: 'auto',
        altRows: true,
        altclass: '',
        pgbuttons: false,
        pgtext: "",
        gridview: true,
        loadonce: true,
        shrinkToFit: false,
        pager: gridPager,
        autoencode: true,
        sortname: 'Id',
        width: $('.grid-wrapper').width() - 20,
        emptyrecords: 'No records found',
        viewrecords: true,
        sortorder: "desc",
        scrollrows: true,
        loadui: 'disable',      
        toppager: true,

是否可以将所有上述属性放在一个公共变量中,并在所有10个不同的网格中重用该变量?

这个想法是节省一些空间并在一个地方进行更改。

注意:我使用的是jqgrid插件4.6.0。

已解决的问题:

在我的js文件顶部添加了以下代码,并从所有10个jqgrids中删除了相同的属性。工作得很好!

//DEFAULTS
$.extend($.jgrid.defaults, {
    datatype: "local",
    mtype: "GET",
    cmTemplate: { sortable: true, resizable: true },
    height: 'auto',
    altclass: '',
    pgbuttons: false,
    pgtext: "",
    gridview: true,
    loadonce: true,
    shrinkToFit: false,
    autoencode: true,
    emptyrecords: 'No records found',
    viewrecords: true,
    sortorder: "desc",
    scrollrows: true,
    loadui: 'disable'
});

1 个答案:

答案 0 :(得分:1)

是的,你可以使用jQuery来做到这一点。 jquery.extend 只需将所有jqGrids中相同的属性放在一个对象defaultOptions中。 然后,您可以在specificOptions中指定特定jqgrid的特定选项。以下函数将特定合并到defaultOptions中。 如果specificOptions对象包含也在defaultOptions对象中的属性,那么它将覆盖它, 否则它会将它添加到选项对象。

var options= $.extend( true, defaultOptions, specificOptions);
相关问题