jqgrid: Comment faire pour obtenir l'index de colonne d'utilisation de mise en forme personnalisée

Comment faire pour obtenir l'index de colonne d'utilisation de mise en forme personnalisée.

Dans la colonne «Impôt» j'essaie d'utiliser la mise en forme personnalisée. Besoin d'obtenir la valeur d'index de colonne et de ligne valeur de l'indice. Je peux obtenir jerame paramètre jerame = options.rowid mais le problème avec l'obtention de icol paramètre.

C'est mon exemple:

    var $grid = $("#grid");
$grid.jqGrid({
datatype: "local",
height: 250,
colNames:[' ', 'Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
colModel:[
{name: 'myac', width:80, fixed:true, frozen: true, sortable:false, resize:false, formatter:'actions',
formatoptions:{keys:true}},
{name:'id',index:'id', width:60, sorttype:"int", frozen: true},
{name:'invdate',index:'invdate', width:90, sorttype:"date", frozen: true, editable: true},
{name:'name',index:'name', width:100, editable: true, editable: true},
{name:'amount',index:'amount', width:80, align:"right",sorttype:"float", editable: true},
{name:'tax',index:'tax', width:80, align:"right",sorttype:"float", editable: true,
formatter: function(cellvalue, options) {
var id = options.rowId;
var col;
return id ?
'<span class="editable" data-id="' + id  + '" data-col="' + col + '">$' + cellvalue + '</span>' :
cellvalue;
}
},      
{name:'total',index:'total', width:80,align:"right",sorttype:"float", editable: true},      
{name:'note',index:'note', width:150, sortable:false, editable: true}       
],
rowNum:10,
width:700,
rowList:[10,20,30],
pager: '#pager',
sortname: 'invdate',
viewrecords: true,
sortorder: "date",
shrinkToFit: false,
rownumbers: true,
caption: "Frozen Column with Group header and custom cell formatter",
height: 'auto',
frozen : true
});
var mydata = [
{id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
{id:"2",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
{id:"3",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
{id:"4",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
{id:"5",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
{id:"6",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
{id:"7",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"},
{id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"},
{id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}
];
for(var i=0;i<=mydata.length;i++) $grid.jqGrid('addRowData',i+1,mydata[i]);
$grid.jqGrid('setGroupHeaders', {
useColSpanStyle: true, 
groupHeaders:[
{startColumnName: 'amount', numberOfColumns: 3, titleText: '<em>Price</em>'},
] 
});
$grid.jqGrid('setFrozenColumns');

Utilisation cliquez sur la cellule de l'événement, je peux obtenir le col et l'index de ligne.

    $grid.click(function(e) {
var el = e.target;
if (el.nodeName !== "TD") {
el = $(el,this.rows).closest("td");
}
var iCol = parseInt($(el).index());
var row = $(el,this.rows).closest("tr.jqgrow");
var rowId = parseInt(row[0].id);
alert ("rowId="+rowId+"; iCol="+iCol+";");
  • Je ne pense pas qu'il y est un faciity pour que, dans le module de formatage, mais la colonne de l'index est l'index dans le colModel tableau. Si l'index de colonne de myac est 0, et l'index de colonne de la taxe est de 5.
  • en raison de l'utilisation de la rownumbers: true option colModel sera modifié par jqGrid et la colonne "rn" sera inséré à la première colonne. Si l'index de colonne de la "tax" colonne (l'index de la colonne dans colModel) sera de 6.
  • est-il possible d'obtenir icol valeur?
InformationsquelleAutor v2p | 2014-05-06