jquery-plugins - 有没有办法在jqgrid中通过列名获取列号

标签 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>";
 }

最佳答案

该列的列索引与 之前的 colModel 数组 中的列索引相同(与输入参数 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所有参数的引用:
var p = $("#list").jqGrid("getGridParam");

值(value)
var iCol = p.iColByName["MyColumn"];

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

关于jquery-plugins - 有没有办法在jqgrid中通过列名获取列号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4895647/

相关文章:

javascript - 无法使 Jquery Ketchup 插件正常工作

php - jQuery/jqGrids/提交表单数据烦恼

javascript - 如何在工具栏之外使用免费的 jqgrid 搜索和查看工具栏按钮

jquery - 为什么 jqGrid cellattr 样式在 IE 7 中似乎不起作用(但在 IE8 和 FF 中工作正常)

forms - JQgrid:从寻呼机获取操作

javascript - 如何动态创建多个 jQuery slider ?

jquery - 在 jQuery 验证插件的错误模板中插入元素

jquery - 延迟加载中的多个容器

javascript - 我需要创建一个小的 jquery 插件,但是有一个非常奇怪的问题

jquery - 如何将 jqGrid 与 ASP.NET MVC 结合使用?