我在trirand.com论坛上发布了最近发布的Oleg clickable复选框格式化程序。 使用其他答案下面的代码。 它在loadComplete中找到boolean Kinnitatud列值。
以下代码停止使用可点击的复选框格式化程序。
$(row.cells[iCol]).children("input:checked").length > 0;
条件始终为false
即使布尔列的值为true。
如何让它发挥作用? 它适用于标准复选框格式化程序。
{ "name":"Kinnitatud","edittype":"checkbox",
"formatter":"clickableCheckbox",
"editable":true,"width":0,"classes":null,"hidden":true,
}
var LoadCompleteHandler = function () {
var iCol = getColumnIndexByName($grid, 'Kinnitatud'),
cRows = $grid[0].rows.length,
iRow,
row,
className,
changeBackGround;
for (iRow = 0; iRow < cRows; iRow = iRow + 1) {
row = $grid[0].rows[iRow];
className = row.className;
if ($.inArray('jqgrow', className.split(' ')) > 0) {
// changeBackGround is always false if formatter = "clickableCheckbox" is used:
changeBackGround = $(row.cells[iCol]).children("input:checked").length > 0;
}
}
答案 0 :(得分:1)
可以非常简单地修复代码。在新的“clickableCheckbox”格式化中,<input>
不是<td>
的直接子项。单元格包含
<div style="position: relative;">
<input disabled="disabled" value="true" checked="checked" type="checkbox" offval="no" />
<div style="... position: absolute; zoom: 1; opacity: 0;" title="closed"></div>
</div>
因此,您应将$(row.cells[iCol]).children("input:checked")
替换为$(row.cells[iCol]).find(">div>input:checked")
。