jquery-plugins
  • jqgrid
  • 2011-02-04 166 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:truesubGrid:true其他列將作爲第一行添加到網格,所以在colModel數組中作爲jqGrid參數的列索引可以是網格初始化之後的其他列。您可以使用例如這個簡單的函數來獲得指標

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

    更新:Free jqGrid叉簡化了從列名獲取列索引,因爲它的內部保存着參數iColByName,這是由上圖列名。人們可以通過

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

    iColByName["MyColumn"]剛剛獲得iColByName將所需的列索引(iCol)。我提醒的是,可以使用getGridParam不帶任何參數,以獲得參考jqGrid的所有參數:

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

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

    將列索引和p.colModel[iCol].name"MyColumn"

    相關問題