2012-01-29 1 views
1

최근에 trigand.com 포럼에 게시 된 올레그 클릭 가능 체크 박스 포맷터를 사용해 보았습니다. 다른 답변에서 아래의 코드가 사용됩니다. loadComplete에서 부울 Kinnitatud 열 값을 찾습니다.clickableCheckBox 포맷터가 jqgrid에서 사용되는 경우 부울 값 값을 찾는 방법

아래 코드는 클릭 가능한 체크 박스 포맷터에서 작동하지 않습니다.

$(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

매우 쉬운 방법으로 코드를 수정할 수 있습니다. 새로운 'clickableCheckbox'포맷터에서는 <td>의 직접적인 하위가 아닌 <input>입니다. 세포는 포함

<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]).find(">div>input:checked")$(row.cells[iCol]).children("input:checked")를 교체해야합니다.

+0

대단히 감사합니다. 그것은 효과가 있었다. – Andrus

+0

@Andrus : 천만에요! – Oleg

+0

clickableCheckbox 포매터는 colmodel 제목 매개 변수를 존중하지 않습니다. 만약 title : false가 사용된다면, 여전히 툴팁이 보입니다 – Andrus

관련 문제