Как найти значение логического столбца, если в jqgrid используется форматер clickableCheckBox - PullRequest
1 голос
/ 29 января 2012

Я попробовал кликабельный переключатель форматирования Олега, недавно размещенный на форуме trirand.com.Код ниже от другого ответа используется.Он находит логическое значение столбца Kinnitatud в loadComplete.

Приведенный ниже код перестает работать с активируемым средством форматирования флажков.

$(row.cells[iCol]).children("input:checked").length > 0; условие всегда ложно, даже если логический столбец имеет значение 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;
  }
}

1 Ответ

1 голос
/ 29 января 2012

Код можно исправить очень просто.В новом форматере 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").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...