Den*_*ich 5 html jquery jquery-ui jqgrid
背景:
我遇到了奇怪的行为jqGrid:当cellattr回调返回包含“style”的字符串时,网格变得混乱。
请看一个例子:
HTML:
<table id="grid"></table>
Run Code Online (Sandbox Code Playgroud)
JavaScript:
$("#grid").jqGrid({
datatype: "local",
height: "auto",
data: [{column1: "row1col1", column2: "row1col2" },
{column1: "row2col2", column2: "row2col2" }],
colNames: ['Column1', 'Column2'],
colModel: [
{
name: 'column1',
index: 'column1',
cellattr: function (rowId, val, rawObject, cm, rdata) {
attrValue = (rawObject.column2 == 'row2col2') ? 'GangnamStyleAttribute' : 'GangnamAttribute';
return ' customAttr="' + attrValue + '"';
},
width: 100
},
{
name: 'column2',
index: 'column2',
width: 100
}],
caption: "Stack Overflow Example",
});
$("#grid").jqGrid('setGridParam');
Run Code Online (Sandbox Code Playgroud)
另请参阅jsfiddle
在上面的示例中,第一行cellattr返回“customAttr="GangnamAttribute"” ,第二行返回“customAttr="GangnamStyleAttribute"” 。
从jsfiddle中可以看到,第一行显示正确,但第二行显示混乱:第一列未显示,第二列显示在第一列的位置。
如果返回的内容中cellattr包含子字符串“ style ”,就会发生这种情况。
问题:是否有任何解决方案或解决此问题的方法,允许使用包含单词“ style ” 的值设置属性?
我想我找到了解决问题的简单方法。
出现此问题的原因jqGrid是尝试从 cellatr 返回的字符串中提取样式属性。它以这种方式工作,以便将返回的样式附加到已经存在的单元格样式中。jqGrid 搜索第一次出现的“style”。
所以我的解决方法是在返回的字符串前面添加空样式属性:
return ' style="" customAttr: "' + attrValue + '"'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5801 次 |
| 最近记录: |