2011-09-03 3 views
2

그리드에서 하나의 행만 강조 표시되도록하고 싶습니다. 사용자가 행을 선택한 다음 새 행을 선택하면 새 행만 강조 표시됩니다 (또한 다중 선택 행은 꺼짐). 그것이 작동하는 나타나지만SlickGrid를 특정 시간에 최대 행 하나만 강조 표시하도록 제한하려면 어떻게해야합니까?

grid.onSelectedRowsChanged.subscribe(function() { grid.setSelectedRows([1,2,3]); }); 

, 그것은 (3 초 50 전체 행을 실행하기 위해) 매우 느립니다 크롬 13, 그것은 반환

이 작업을 수행하려고, 나는이 이벤트를 설정 2 오류 :

1) catch되지 않은 오류 RangeError : 최대 호출 스택의 크기는 및

2) 큰 오류 추적을 초과 :

error> 
c.fn.c.pushStack:23 
c.each.c.fn:99 
getCellNode:2277 
removeCellCssStyles:1506 
setCellCssStyles:1518 
handleSelectedRangesChanged:925 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRowsslick.grid.js:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:125 
trigger:789 
handleSelectedRangesChanged:927 
notify:125 
setSelectedRanges:72 
setSelectedRows:2478 
grid.onAddNewRow.subscribe.item:546 
notify:12 

원하는 기능을 구현하는 데 더 좋은 방법이 있습니까?

+0

이것은 나에게도 일어났습니다. 정말 실망 스럽습니다. –

답변

0

최대 호출 스택은 순환 함수 호출로 인해 발생합니다.

먼저 위의 함수를 호출 할 onSelectedRowsChanged 이벤트 (아마도 onClick을 통해)를 트리거합니다. 그러나 함수는 setSelectedRows을 호출하여 선택된 행을 설정 한 다음 onSelectedRowsChanged을 트리거합니다. JS 엔진이 최대 호출 스택에 도달하고 멈출 때까지이 작업이 계속됩니다 (결국 브라우저를 크래시하고 싶지 않습니다).

유일한 해결책은 자신의 RowSelectionModel을 작성하고 거기에 grid.setSelectedRows()를 수행하는 것입니다.