如果满足某些条件,我正在尝试使单元格着色并可点击。 我得到的问题是将参数传递给元素的onclick。 我正在做类似的事情:
{
name: 'numberOfUnits',
index: 'numberOfUnits',
sorttype: 'integer',
cellattr: function (rowId, tv, rawObject, cm, rdata) {
if (...) {
return 'style="background-color:red" onClick="javascript:showReceivedLockedPieChartDialog(' + '\'' + lockedCellId + '\'' + ')"';
}
else {
return 'style="color:black"';
}
}
}
我看到文本形成为:
style="background-color:red" onClick="javascript:showReceivedLockedPieChartDialog('ABC')"
我看到它正在创造这样的东西......
<td aria-describedby="reportGrid_numberOfUnits" title="13" ABC")"="" onclick="javascript:showReceivedLockedPieChartDialog(" style="background-color:red" role="gridcell">13</td>
请帮我把参数传递给这个功能。
答案 0 :(得分:3)
哦,是的!您的代码显示从cellattr
返回的字符串的分离将不够仔细解析。我发现应该更好地重写将在内部使用的函数formatCol。我想下次发布trirand建议,使用RegEx
匹配更改代码。
然而,有一些简单的规则可以允许在当前实现中使用cellattr
:
style
属性作为cellattr
' '
属性的值,则应将其他style
空白作为返回值的第一个字符。style
,title
和class
用作相应属性的名称。最后一条规则意味着您不应使用class="mytitle"
或title="my class style"
。解析返回的字符串并不是那么小心。所以这样的名字会产生一些副作用。正如我之前写的那样,代码jqGrid的相应部分解析结果应该在我看来改变了。我将尝试在下一次将相应的建议发布到trirand。
在您的情况下,您应该将cellattr
的代码重写为
cellattr: function (rowId, tv, rawObject, cm, rdata) {
if (...) {
return ' onclick="showReceivedLockedPieChartDialog(' + '\'' +
lockedCellId + '\'' + ')" style="background-color:red"';
} else {
return 'style="color:black"';
}
}
The demo表示更改有效。