2011-03-10 5 views
8

Grid를 채우고 필터를 사용하여 보이는 행과 상호 작용하는 데 DataView를 사용하고 있습니다. 내 문제는 필터를 적용한 후, 행 변경 또는 행 개수 변경 ... 예를 들어 일부 계산을 수행하는 데 단지 해당 보이는 행을 반복하는 데 dataview에 액세스 할 수 있습니까?데이터보기에서 필터링 된 항목의 액세스 목록

행 자체가 공개적으로 노출되지 않기 때문에 행이 항상 데이터 요소는 아니므로 그룹을 참조 할 수도 있습니다.

필터링 된 데이터 요소에 쉽게 액세스 할 수 있습니까?

덕분에,

답변

9

사용 dataView.getLength()와;

("var에 filteredItems의 =의 getFilteredAndPagedItems (_items, _filter)"나는 내가 무엇을 찾고 추측에 액세스 할 수있는 같은 것입니다) 필터링 된/페이지 된/그룹화 된 데이터에 액세스하기위한 dataView.getItem (index). 이것은 그리드가 데이터 소스와 대화하기 위해 사용하는 인터페이스입니다.

+0

네, 지금하고 있습니다. 검색된 항목이 행이나 그룹인지 확인하고 있습니다. 그러나 마지막 행을 건너 뛰는 방법이 있는지 알고 싶었습니다. 왜냐하면 행에만 액세스하고 그룹을 버리기를 원하기 때문입니다. 감사! – Marc

+0

그룹을 수동으로 필터링해야합니다. 그룹화가 구현되는 방식입니다. 그룹은 일부 추가 메타 데이터가 포함 된 일반 행처럼 그리드로 공급됩니다. – Tin

0

내가 원하는 해결책을 게시하려면 여기를 클릭하십시오. 또한 비슷한 것을 찾고있는 사람들을위한 것입니다.

Get Filtered data from Dataview in Slickgrid

당신이 이런 일을 할 수있는 현재 페이지의 필터링되고있어 정보와 뭐죠 보여주고 싶은 경우.

var pagingInfo = dataView.getPagingInfo(); 
var start = pagingInfo['pageSize'] * (pagingInfo['pageNum']); 
var filteredAndPagedItems = dataView.getFilteredItems().slice(start,(start + pagingInfo['pageSize'])); 
console.table(filteredAndPagedItems); 

해당 행을 따라 가십시오. getFilteredItems는 dataview.js에 추가 한 사용자 정의 함수입니다. 자세한 내용은 링크를 참조하십시오.