【问题标题】:How to get a cell value in JQGrid?如何在 JQGrid 中获取单元格值?
【发布时间】:2023-03-02 22:09:01
【问题描述】:

如何在 JQGrid 中获取单元格值?

如果我使用以下语法——

var ret = jQuery("#MyGrid").jqGrid('getRowData', id);
ret = ret.ProductId;

它返回以下 HTML。

'input class="editable" name=" ProductId " id="0_ ProductId " style="width: 98%;" type="text"'

我实际上需要单元格的值。

谢谢。 开发

【问题讨论】:

标签: jquery jqgrid get cell


【解决方案1】:

您必须遵循以下步骤:

从网格中读取所有 dataID

var dataIDs = jQuery("#MY_GRID").getDataIDs();

您可以根据 ID 列表对网格进行迭代。然后您将使用 dataID 获取行。当您的整行完成后,您就可以获得单元格值。

这是示例工作代码

for(i = 0; i < dataIDs.length; i++)
{
var rowData = jQuery("#MY_GRID").jqGrid ('getRowData', dataIDs[i]);

console.log(rowData);
var COLL_1_VALUE = $('#MY_GRID').jqGrid('getCell', dataIDs[i], 'COLL_1');
var COLL_2_VALUE = $('#MY_GRID').jqGrid('getCell', dataIDs[i], 'COLL_2');

console.log(COLL_1_VALUE);
console.log(COLL_2_VALUE);
}

【讨论】:

    【解决方案2】:

    如果你只需要一个已经保存的单元格的值,可以用这个获取

    $('#myTable').jqGrid('getCell',row_id,'column_name');
    

    【讨论】:

    • 小心上述解决方案-来自文档-“在编辑行或单元格时不要使用此方法。这将返回单元格内容而不是输入元素的实际值” .换句话说,如果您应用了格式化程序,这将返回类似 &lt;h3&gt;Cell Value Here&lt;/h3&gt; jqGrid Docs
    【解决方案3】:

    如果您在编辑行时尝试获取该行的值,您将检索标记(如您的示例中所示),而不是实际值。引用jqGrid Documentation for getRowData

    编辑行或单元格时不要使用此方法。这将返回单元格内容,而不是输入元素的实际值

    解决此问题的最佳方法是在调用 getRowData 之前保存您的行数据,尽管如果这不是一个选项,您将不得不自己解析标记。这实际上在 jQuery 中并不是 难做到的,但仍然很痛苦。

    【讨论】:

    • 代码到底是什么?有关这些方法的示例,请参阅 saveRowgetRowData 的文档。如果您需要解析出getRowData 的原始 HTML 内容,您可以像处理常规 HTML 文档一样使用 jQuery。如果您要走这条路,我建议您使用 FireBug 来了解原始 HTML 的格式。不幸的是,我没有方便的代码示例,因为我能够重构我的代码来防止这种情况。但是,如果您粘贴 HTML,我可能会帮助您...
    • 这很好,但是如何获得价值呢?
    • @CsabaToth - 使用 getRowDatagetCell 并在调用它们之前保存您的数据。
    • @JustinEthier “打电话给他们之前”——你的意思是在编辑之前?
    猜你喜欢
    • 2011-03-30
    • 1970-01-01
    • 2014-07-21
    • 2010-12-19
    • 1970-01-01
    • 2011-10-23
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多