2010-06-11 3 views
3

는이 같은 체크 박스 열이있는 유이의 DataTable을 사용하고 있습니다 :YUI DataTable에서 확인 된 행을 어떻게 찾을 수 있습니까?

var myColumnDefs = [ 
    {key:"check", label:'', formatter:"checkbox"},        
    {other columns...} 
]; 

어떻게 확인 된 모든 행을 반복 할 수 있습니까?

UPDATE :

여기

내 현재 해결 방법입니다 :

function getCheckedIds() { 
    var records = yuiDataTable.getRecordSet().getRecords(); 
    var ids = ''; 

    for (i=0; i < records.length; i++) { 
     var checked = false; 
     if (records[i] != undefined) 
     { 
      checked = $('#' + records[i].getId() + ' td div.yui-dt-liner input.yui-dt-checkbox').attr('checked'); 
      if (checked) { 
       if (ids != '') { 
        ids += ','; 
       } 
       ids += records[i].getData("item.id"); 
      } 
     } 
    } 
    return ids;  
} 
+1

Justin - YUI DataTable 지원 전용 포럼이 있습니다. http://yuilibrary.com/forum/viewforum.php?f=90 - 여기에 대한 답변을 얻지 못하면 시도해보십시오. -Eric –

답변

2

가 더 나은 방법은 데이터 테이블의 checkboxClickEvent를 구독 할 수 있습니다, 다음 확인란을 선택 (또는 선택 해제)한다 프로그래밍 방식으로 데이터 테이블의 selectRow/unselectRow 메서드를 사용하여 선택한 행을 표시하십시오. 이렇게하면 UI에서 더 잘 보이고 (행이 강조 표시됨) Datatable의 getSelectedRows 메소드를 사용하여 선택한 행을 쉽게 얻을 수 있습니다.

+1

좋은 생각인데,이 접근법은 사용자가 뒤로를 누르는 데 문제가 있습니다. 다시 누르면 일부 체크 박스는 체크 된 채로 남아있을 수 있지만 각 체크 박스의 onclick 이벤트는이 페이지로드를 실행하지 않았으므로 체크 된 것으로 표시되지 않습니다. –