jquery-plugins
  • jqgrid
  • 2011-02-04 29 views 4 likes 
    4

    列名でカスタムフォーマッタ関数でrowObjectにアクセスしようとしましたが、値を与えませんでした。私はJSONとXMLの両方のデータ型でこれを試しました。jqgridの列名で列番号を取得する方法はありますか

    jqgridの列名で列番号を取得する方法はありますか。

    function Draw_Link (cellvalue , options , rowObject) 
    { 
        return "<a href='someurl.php?col_name="+rowobject.col_name+"'>"+cellvalue+"</a>"; 
    } 
    

    答えて

    10

    列の列インデックスが(それが入力パラメータcolModelと同じである)前jqGrid初期colModelアレイ内の列のインデックスと同じです。 rownumbers:trueを使用する場合は、multiselect:trueまたはsubGrid:trueの追加の列が最初の行としてグリッドに追加されます。したがって、colModelの配列にjqGridパラメータとして含まれる列インデックスは、グリッドの初期化後に他のものになる可能性があります。Free jqGridフォークは、それが内部的に列名によってマップされたパラメータiColByNameを、保持しているため、列名から列インデックスを取得簡素化:あなたは、インデックス

    var getColumnSrcIndexByName = function(grid,columnName) { 
        var cm = grid.jqGrid('getGridParam','colModel'), 
         i=0, index=0, l=cm.length, cmName; 
        while (i<l) { 
         cmName = cm[i].name; 
         i++; 
         if (cmName===columnName) { 
          return index; 
         } else if (cmName!=='rn' && cmName!=='cb' && cmName!=='subgrid') { 
          index++; 
         } 
        } 
        return -1; 
    }; 
    var index = getColumnSrcIndexByName($("#list"),'MyColumn'); 
    

    を更新取得する例については、この単純な関数を使用することができます。一つは、単に必要な列インデックス(iCol)となりますiColByName

    経由
    var iColByName = $("#list").jqGrid("getGridParam", "iColByName"); 
    

    iColByName["MyColumn"]を得ることができます。列のインデックスになります

    var p = $("#list").jqGrid("getGridParam"); 
    

    var iCol = p.iColByName["MyColumn"]; 
    

    p.colModel[iCol].name"MyColumn"を次のようになります。私は1つがjqGridのすべてパラメータへの参照を取得するために任意のパラメータなしgetGridParamを使用できることを思い出させます。

    関連する問題