gpt4 book ai didi

jquery - jqGrid:当 cellattr 返回包​​含 "style"的字符串时出现困惑

转载 作者:搜寻专家 更新时间:2023-10-31 08:45:04 25 4
gpt4 key购买 nike

背景:

我在 jqGrid 中遇到了奇怪的行为:当 cellattr 回调返回包含“style”的字符串时,网格变得困惑。

请看一个例​​子:

HTML:

<table id="grid"></table>

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');

另请参阅 jsfiddle

在上面的示例中,cellattr 返回第一行的 ' customAttr="GangnamAttribute"'' customAttr="GangnamStyleAttribute"'第二行。

jsfiddle可以看出,第一行显示正确,但第二行显示困惑:第一列未显示,第二列显示在第一列的位置。

如果 cellattr 返回包含子字符串“style”的内容,就会发生这种情况。

问题:是否有任何解决方案或解决此问题的方法,允许使用包含单词“style”的值设置属性?

最佳答案

我想我找到了解决问题的简单方法。

问题的发生是因为 jqGrid 试图从 cellatr 返回的字符串中提取样式属性。它以这种方式工作,以便将返回的样式附加到已经存在的单元格样式。 jqGrid 搜索第一次出现的“style”。

所以我的解决方法是在返回的字符串前加上空样式属性:

return ' style="" customAttr: "' + attrValue + '"'

参见 jsfiddle with the workaround

关于jquery - jqGrid:当 cellattr 返回包​​含 "style"的字符串时出现困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23543245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com