Javascript 如果在jqgrid中使用clickableCheckBox格式化程序,如何查找布尔列值

Javascript 如果在jqgrid中使用clickableCheckBox格式化程序,如何查找布尔列值,javascript,jqgrid,Javascript,Jqgrid,我尝试了最近在trirand.com论坛上发布的Oleg可点击复选框格式化程序。 使用其他答案的下面代码。 它在loadComplete中查找布尔Kinnitatud列值 下面的代码停止使用可单击复选框格式化程序 $(row.cells[iCol])。子项(“输入:选中”)。长度>0条件始终为false 即使布尔列的值为true 如何让它工作? 它与标准的复选框格式化程序一起工作 { "name":"Kinnitatud","edittype":"checkbox", "formatter":"

我尝试了最近在trirand.com论坛上发布的Oleg可点击复选框格式化程序。 使用其他答案的下面代码。 它在loadComplete中查找布尔Kinnitatud列值

下面的代码停止使用可单击复选框格式化程序

$(row.cells[iCol])。子项(“输入:选中”)。长度>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;
  }
}
{“name”:“Kinnitatud”,“edittype”:“checkbox”,
“格式化程序”:“可点击复选框”,
“可编辑”:true,“宽度”:0,“类”:null,“隐藏”:true,
}
var LoadCompleteHandler=函数(){
var iCol=getColumnIndexByName($grid,'Kinnitatud'),
cRows=$grid[0]。rows.length,
伊罗,
一行
类名,
改变背景;
对于(iRow=0;iRow0){
//如果使用formatter=“clickableCheckbox”,则changeBackGround始终为false:
changeBackGround=$(row.cells[iCol])。子项(“输入:选中”)。长度>0;
}
}

可以非常轻松地修复代码。在新的“clickableCheckbox”格式设置程序中,
位于
的非直接子级中。单元格包含

<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])子项(“input:checked”)替换为
$(row.cells[iCol])。find(“>div>input:checked”)
可以很容易地修复代码。在新的“clickableCheckbox”格式化程序中,
的非直接子项中包含
。单元格包含

<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])子项(“输入:选中”)
替换为
$(row.cells[iCol])。查找(“>div>input:checked”)

clickableCheckbox格式化程序不接受模型标题参数。如果使用了title:false,它仍然显示tooltip@Andrus:很明显,如果您计划以任何自定义方式设置工具提示,则应包括
title:false
。格式设置程序无法更改
colModel
中的其他选项。因此,您必须管理所有冲突cts yourself.clickableCheckbox格式化程序不接受模型标题参数。如果使用了title:false,它仍然显示tooltip@Andrus:很明显,如果您计划以任何自定义方式设置工具提示,则应包括
title:false
。格式设置程序无法更改
colModel
中的其他选项。因此,您必须管理所有冲突你自己。