【问题标题】:Is there a way to get the column number by column name in jqgrid有没有办法在jqgrid中按列名获取列号
【发布时间】:2023-03-16 00:20:01
【问题描述】:

我尝试通过列名访问自定义格式化程序函数中的 rowObject,但它没有给出任何值。我已经尝试过使用 JSON 和 XML 数据类型。

有没有办法在jqgrid中通过列名获取列号。

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

【问题讨论】:

    标签: jquery-plugins jqgrid


    【解决方案1】:

    列的列索引与colModel数组中列的索引相同在jqGrid初始化之前(与输入参数colModel中的相同)。如果您使用rownumbers:truemultiselect: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 fork 简化了从列名获取列索引,因为它在内部保存了参数iColByName,这是列名的映射。可以通过

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

    iColByName["MyColumn"] 将是所需的列索引 (iCol)。我提醒一下,可以使用getGridParam不带任何参数来获取对jqGrid的all参数的引用:

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

    价值

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

    将是列索引,p.colModel[iCol].name 将是 "MyColumn"

    【讨论】:

      猜你喜欢
      • 2020-02-29
      • 2011-03-04
      • 1970-01-01
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 2010-12-27
      • 2020-07-01
      • 1970-01-01
      相关资源
      最近更新 更多