【问题标题】:Free jqGrid. Getting column names in conjunction with a cell免费jqGrid。将列名与单元格一起获取
【发布时间】:2017-04-14 07:52:53
【问题描述】:

我正在尝试使用错误输出来实施数据完整性检查,该错误输出描述了哪些单元格未填充到行中。

//get row id
var gr = $("#" + subgrid_table_id).jqGrid('getGridParam', 'selrow');
// check row select
if (gr != null) {
/*
var myGrid = $("#" + subgrid_table_id),
selRowId = myGrid.jqGrid('getGridParam', 'selrow'),
//get cell value:
col1Value = myGrid.jqGrid('getCell', selRowId, 'stage');
//get all colnames
var columnNames =  myGrid.jqGrid('getGridParam','colNames');
//get column name by index:
var col1Name = columnNames[4];

if (col1Value == "")    {
    alert("This data is empty: "+col1Name);
}
else {

也就是说,一切似乎都可以正常工作,但是当您更改列数时,一切都会浪费掉。如何将列名链接到 ColNames 及其在 ColModel 中的名称以获得动态解决方案?

【问题讨论】:

    标签: jqgrid free-jqgrid


    【解决方案1】:

    首先,jqGrid 的所有参数都保存在myGrid.jqGrid('getGridParam') 可用的一个对象中。因此var selRowId = myGrid.jqGrid('getGridParam', 'selrow');p.selrow 相同,其中var p = myGrid.jqGrid('getGridParam');

    这些列将由colModel 中的索引标识:p.colModel[iCol]。另一方面,列的name 属性将更频繁地称为列iCol 的索引。此外,还可以通过拖放列标题对列重新排序。一个需要包括sortable: true 网格选项以启用这种可能性。通过columnChooser 或直接调用方法remapColumnsremapColumnsByName 可以更改列顺序。由于各种原因,建议保存列名(永远不会更改)而不是列索引。

    要通过列名获取列索引,可以循环colModel 数组并测试name 属性的值。为了加速这种操作,免费的 jqGrid 提供了地图对象iColByName 作为 jqGrid 的选项。因此,如果您知道列名cmName,那么您可以使用var iCol = p.iColByName[cmName]; 来获取列索引。 colModel 中的列将为p.colModel[iCol],列标题的文本将为p.colNames[iCol]

    顺便说一句,我不确定您是否正确理解colNames 的值。参数名不好,但会因为兼容老版本而使用。数组colNames 的元素是 HTML 片段,将放置在列标题中。一个人可以在colNames 内有空字符串,或者对不同的列有相同的标题。另一方面,colModelname 属性是列的真实 name。不能为空。不能在不同的列中使用重复的名称,并且名称不能包含空格。

    我希望拥有以上信息,您将能够轻松找到每一列的完整信息。

    最后的话。获取网格数据的方法主要有以下三种:getCellgetRowDatagetLocalRow。 jqGrid 获取输入数据,格式化数据并将格式化的 HTML 片段放置在单元格中(在<td> 中)。此外,jqGrid 将 原始原始数据 保存在内部 data 参数中(这是项目数组,表示行)。 data 参数仅在使用本地数据 (datatype: "local") 或从远程集加载数据 (datatype: "json"datatype: "xml") 的情况下存在,但额外带有 loadonce: true 选项。方法getCellgetRowData unformats 来自单元格的数据(来自<td>)和方法getLocalRow 让您从内部data 直接引用内部JavaScript 对象,其中已经设置了行的数据。因此,当网格有本地数据时,建议优先使用getLocalRow 而不是getCellgetRowData

    【讨论】:

      猜你喜欢
      • 2012-05-27
      • 1970-01-01
      • 1970-01-01
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-02
      相关资源
      最近更新 更多