我一直试图在jqGrid中“合并”单元格,也就是说,我想让特定行的单元格具有colspan = 2(或更多).到目前为止,我已经能够使用列模型中的cellattr选项使边框正常工作,如下所示:
colModel = { name: "a",width=50,cellattr: function(rowId,tv,rawObject,cm,rdata) { if (rowId < 5) { return 'sytle="border-right:0px"'; } },name: "b",rdata) { if (rowId < 5) { return 'sytle="border-left:0px"'; } } };
这只是删除了我要合并的单元格的边框(a& b到第5行).但是如果我将文本添加到任何这些框中,text-align显然将无法正常工作,如果文本大于50像素,文本就会被切断.
我可以做一些疯狂的事情,我通过将所有文本切成两半进行居中对齐,并将每一半分别添加到右对齐和左对齐下的列“a”和“b”.但是,似乎应该有更好的方法.
解决方法
我发现你的问题非常有趣,所以1我.
在我看来,colspan = 2的使用是你真正需要的.要在具有colspan = 2的行中具有相同数量的列,我建议隐藏下一个< td>行中的元素:
{ name:'a',index:'a',width:50,rdata) { if (Number(rowId) < 5) { return ' colspan=2' } } },{ name:'b',index:'b',rdata) { if (Number(rowId) < 5) { return ' style="display:none;"' } } }
我只测试了几次实现,但它似乎工作:
这个演示你可以看到直播here.
更新:Another answer显示如何在jqGrid中使用rowspan属性.