微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

jquery-plugins – 有没有办法在jqgrid中按列名获取列号

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

有没有办法在jqgrid中按列名获取列号.

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

解决方法

列的列索引与jqgrid初始化之前colModel数组中的列的索引相同(它与输入参数colModel中的相同).如果使用rownumbers:true,multiselect:true或subGrid: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的所有参数的引用:

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

价值

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

将是列索引,p.colModel [iCol] .name将为“MyColumn”.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐