JQGrid getCell Attiribute

时间:2015-07-26 18:16:27

标签: jquery jqgrid

我想知道是否有办法检索jqGrid中单元格的rowspan和columnspan属性值?我的目的是获取currentrowspan和columnspan属性值,并根据前一行的单元格值将其增加一。

我查看了所有文档,但看起来没有办法获取像单元格的rowspan和columnspan这样的属性值。

谢谢

1 个答案:

答案 0 :(得分:0)

如果更改jqGrid的rowspancolspan属性以保持网格外观正确,则应非常谨慎。必须更改值不仅是一个单元格,而是多个单元格以保持网格外观正确。 The answer提供了使用rowspan的{​​{1}}和another one的使用示例。

如果可能,您应该在创建网格期间按照引用的示例和设置colspanrowspan属性,而不是更晚地更改属性。原因就在于性能。如果您在HTML页面上更改一个元素,则可以更改页面上许多其他元素的位置和其他一些属性,因此Web浏览器需要执行reflow来验证更改是必要的。这需要时间。页面上的元素越多,更换一个元素就越昂贵。由于jqGrid尝试使用所有元素和属性作为一个操作创建网格(请参阅gridview:true选项)。在使用大网格的情况下,它可以显着提高页面的性能。

无论如何,我可以问你如何获取单元格并更改它的属性。可能你知道jQuery主要用作DOM元素的包装对象,它是表示或更改HTML页面元素的标准接口。重要的是要理解,jQuery通常只使用一个由所有 HTML元素继承的公共Element接口。另一方面,还有许多其他有用的界面可用于访问HTML页面。 jqGrid基于HTML colspan元素,支持许多其他有用的属性(例如,请参阅here)。因此,如果您从<table>创建了jqGrid,那么<table id="grid"></table>表示jQuery包装器到网格。要访问网格的行,可以使用$("#grid")集合并访问行的单元格,可以使用行的cells集合。因此,可以使用rows访问行的单元格:

$("#grid")[0].rows[iRow].cells[iCol]

根据用法var gridDom = $("#grid")[0]; // the iRow row (1-based) and iCol var oldRowSpan = $(gridDom.rows[iRow].cells[iCol]).attr("rowspan"); ,您可以获取或设置单元格的任何属性(例如jQuery.attrrowspan属性)。应该考虑的唯一事情是:一个人不应该改变网格colspan的第一个不可见行。该行有类$("#grid")[0].rows[0]。该行具有索引0.其他标准行的jqGrid具有类jqgfirstrow并且索引从1开始。