2014-04-14 2 views
0

단일 선택 모드에있는 데이터 테이블이 여러 개 있습니다. 나는 얼마나 많은 datatables를 가지고 있고 그것들을 참조하는 방법을 알고있다. 왜냐하면 그것들의 widgetVar 속성에 인덱스를 추가하기 때문이다. 따라서 나는 "안전하지 않은"조작으로 그들을 참조 할 수 있습니다 var dt = eval('dt' + index).중첩 된 데이터 테이블 단일 행 선택

내가 직면 한 문제는 중첩 된 데이터 테이블 중 하나에서 행을 선택할 때마다 선택 항목이 다른 항목에 남아있어이를 정리하려고 할 때입니다.

내가 좋아하는 뭔가를 시도했다 :

<p:ajax event="rowSelect" onstart="deseleccionarTablas()"/> 
function deseleccionarTablas() 
{ 
    for (i=0; i < dtEstacionesSeleccionadas.getPaginator().cfg.rows; i++) 
    { 
      var dt = eval('dt' + i); 
      dt.unselectAllRows(); 
    } 
}; 

dtEstacionesSeleccionadas은 "컨테이너"또는 "루트"테이블과 매기기와 "게으른"모드, 그래서 중첩 dataTables의 변수 번호가 수도에서 작동 표시됩니다. 위의 코드는 모든 항목을 선택 취소 했으므로 작동하지 않습니다. 그리고 나는 마지막 하나가 선택되기를 원합니다.

아이디어가 있으십니까? 고맙습니다.

답변

1

JavaScript를 사용하는 대신 서버 측에서 업데이트하지 않으시겠습니까? 각 테이블에는 selection="#{mrBean.selectedRow}" 속성이 있어야합니다. 의 actionListener에있는 모든 항목을 null으로 설정하면됩니다. 그러면 간단한 update="table1 table2 ... tablen"이 문제를 해결할 것입니다.

+0

안녕하세요! 답장을 보내 주셔서 감사합니다. 그 근사치는 "게으른"루트 테이블에 중첩 테이블이 있고 표시된 테이블 수가 달라질 수 있기 때문에 어렵습니다. -_I이 정보로 내 질문을 편집합니다 .- 그래서 정적 인 방법으로 업데이트 attr을 정의 할 수 없습니다. 동적으로 설정할 수 없다고 생각합니다. –