2013-01-04 3 views
1

나무에 짓기/접기 축소 펼치기 SlickGrid 예제는 here입니다.SlickGrid를 다시 적용한 후 필터를 수정하십시오.

% 완료 열의 정렬을 추가했지만 사용자가 정렬을 시작하면 필터가 업데이트되지 않습니다. 확장/축소 아이콘이 작동하지 않아 잘못된 위치에 있습니다.

정렬 후에 어떻게 파일러를 다시 적용합니까? 나는 코드 아래 사용하여 시도했지만 작동하지 않습니다 :

dataView.setFilter(myFilter); 
grid.render(); 

당신은 내가이 jsFiddle 열 때 here

업데이트 내가 눈치 챘을 가지고있는의 바이올린을 볼 수 있습니다 페이지 HTML 섹션이 비어있는 것처럼 보일 수 있습니다. 페이지를 새로 고침하면 코드가 나타나는 것처럼 보입니다.

업데이트 나는 추한 작품을 만들 수있었습니다. 업데이트 된 예제를 찾을 수 있습니다. here

기본적으로 데이터를 정렬 한 다음 그리드를 삭제하고 다시 만듭니다. 나는 여전히 문제에 대한보다 우아한 해결책이 있는지 알고 싶다.

답변

0

필자의 링크는 실제로 내 컴퓨터에서는 실행되지 않지만 소스 코드를 읽으면 DataView를 다시 작성해야하거나 데이터 뷰가 끼어 들기를 실행하여 모든 들여 쓰기를 강제 실행해야합니다. 축소/확장 할 수 있습니다.

새로 고침을 강제하는 가장 쉬운 방법은 grid.render() 다음 grid.invalidate()를 호출하는 것입니다. 그래도 문제가 해결되지 않으면이 분류되어있어 당신은 각 요소에 대해 updateItem()를 호출 할 수 있습니다. 이 두 가지 중 하나를 선택하면 그리드가 행 인덱스와 해당 인덱스에 대한 시각을 다시 계산하게됩니다.

부모 관계가 행 순서에 따라 강제되지 않으므로 정렬에주의해야합니다. 항목 (id 2)의 하위 항목 (id 5)은 위에있는 행 1에 의지 할 수 있습니다. 부모를 무너 뜨리고 부모를 무너 뜨리면 여전히 사라집니다. 정렬 알고리즘이 이미이 문제를 처리 한 것처럼 보이지만 다른 사람이 질문을 읽는 것이 중요합니다.

관련 문제