2011-05-18 62 views

回答

14

從版本3.8.2開始jqGrid支持一個非常有用的功能:列模板。 (這可能不太正確,因爲該功能是在my own suggestion上引入的:-))。該功能還沒有真正記錄,但它可以很容易地使用。

我在一個例子中解釋它。如果你定義了額外的jqGrid參數

cmTemplate:{resizable:false} 

那麼你的問題就解決了。

如果您有更多的特性,這是常見的所有列的colModel項目,例如align:'center'cmTemplate會幫你還(cmTemplate:{可調整大小:假的,對齊:「中心」})。在jqGrid 3.8.2中,模板設置的優先級爲bug,與colModel的設置相比,但該bug在jqGrid 4.0.0中得到了修復。因此cmTemplate的屬性可以被解釋爲項目的默認值。使用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),並在網格很多地方(或導報)使用的方式出現。就功能而言,您可以縮短代碼,提高可讀性並輕鬆更改。

+0

您在jqGrid的真的很棒。我會嘗試一下,看看事情是如何工作的,然後我會將jqgrid從3.8.2升級到4.0。 – VJAI 2011-05-19 05:46:14

+0

我無法升級成功:(遇到很多問題,有沒有什麼辦法可以在3.8.2中做到這一點? – VJAI 2011-05-19 06:22:53

+0

@Vijaya Anand:我在答覆中寫道,jqGrid 3.8已經支持列模板.2。因此,您可以在當前網格中添加'cmTemplate:{resizable:false}'參數,並解決問題。 – Oleg 2011-05-19 07:10:16

0

模板爲我的偉大工程:

{ 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']} };