jqgrid: Wie bekomme Spalte index verwenden von benutzerdefinierten formatter

, Wie man Spalte index verwenden von benutzerdefinierten formatter.

In der Spalte «Steuer» ich versuche, verwenden Sie die benutzerdefinierte formatter. Müssen bekommen Spalte index-Wert und Zeile index-Wert. Ich kann irow parameter irow = Optionen.rowid-problem, sondern mit immer icol parameter.

Dies ist mein Beispiel:

    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');

Verwenden, klicken Sie auf die Zelle Veranstaltung, die ich bekommen kann col-und row-index.

    $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+";");
  • Ich glaube nicht, dass es eine faciity für die, die in der Formatierer, aber die Spalte index ist der index in der colModel array. Also die Spalte index der myac 0 ist, und die Spalte index der Steuer ist 5.
  • da die Nutzung der rownumbers: true option colModel geändert von jqGrid und die Spalte "rn" eingefügt werden, wie die erste Spalte. Also die Spalte index der "tax" Spalte (der index der Spalte, in colModel) 6.
  • ist es möglich, bekommen icol Wert?
InformationsquelleAutor v2p | 2014-05-06
Schreibe einen Kommentar