我想知道是否有办法检索jqGrid中单元格的rowspan和columnspan属性值?我的目的是获取currentrowspan和columnspan属性值,并根据前一行的单元格值将其增加一。
我查看了所有文档,但看起来没有办法获取像单元格的rowspan和columnspan这样的属性值。
谢谢
答案 0 :(得分:0)
如果更改jqGrid的rowspan
和colspan
属性以保持网格外观正确,则应非常谨慎。必须更改值不仅是一个单元格,而是多个单元格以保持网格外观正确。 The answer提供了使用rowspan
的{{1}}和another one的使用示例。
如果可能,您应该在创建网格期间按照引用的示例和设置colspan
和rowspan
属性,而不是更晚地更改属性。原因就在于性能。如果您在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.attr
和rowspan
属性)。应该考虑的唯一事情是:一个人不应该改变网格colspan
的第一个不可见行。该行有类$("#grid")[0].rows[0]
。该行具有索引0.其他标准行的jqGrid具有类jqgfirstrow
并且索引从1开始。