2017-02-21 4 views
0

그래서 사용자가 프로젝트 작업 목록으로 사용할 모델/테이블을 설정했습니다. Completion 또는 Canceled로 항목의 상태 (모델의 필드)를 변경할 때 숨겨집니다.테이블에서 "완료되었거나 취소 된 항목"을 숨기는 가장 좋은 방법은 무엇입니까?

그런 식으로 그들은 활성 항목 만 처리합니다. 그러나 필요한 경우 숨겨진 (보관 된) 항목을 볼 수 있기를 바랍니다.

widget.datasource.query.clearFilters(); 
widget.datasource.load(); 
app.closeDialog(); 
var datasource = app.datasources.Projects; 
datasource.query.filters.Status._contains = 'Completed'; 
datasource.load(); 

그것을 :

나는 그들이 숨겨진/보관 된 항목을 볼 수 있도록 내가 다음 코드를 사용하여 버튼이

var datasource = app.datasources.Projects; 
datasource.query.filters.Status._notContains = 'Completed'; 
datasource.load(); 

그리고 테이블의 onAttach 옵션에 다음 코드를 추가 작동하지만, 더 나은/우아한 방법이 될 수있을 것 같아요. 특히 응용 프로그램에서 데이터를로드해야하므로 필터를 적용하면로드가 느려집니다. (나는 거기에 몇 가지 중복 된 코드가있을 수도 있다고 생각한다.)

또한 필자는 구문을 가지고 뭔가를 놓치고있는 것처럼 느낀다. 필자는 필터링을 완료하고 취소 할 수 없기 때문이다.

도움 주셔서 감사합니다.

답변

1

테이블에 항목이 한 페이지 있고 항목이 많지 않은 경우 클라이언트 측에서 필터링 할 수 있습니다. 예를 들어 바인딩 표현식을 사용하여 일부 논리에 따라 행에 "projectHidden"스타일을 추가 한 다음 CSS를 사용하여 행의 가시성을 변경할 수 있습니다.

두 번째 코드 블록의 경우 필터를 지우고로드하고 필터를 설정 한 다음 다시로드 할 이유가 없습니다. 필터를 지우고, 새 필터를 설정하고, load를 호출하십시오. 또한 수동으로 쿼리로드를 제어하는 ​​경우 데이터 소스의 설정을 선택 취소하여 데이터를 자동으로로드 할 수 있습니다.

+0

감사합니다. –

0
var datasource = app.datasources.Projects; 
datasource.query.filters.Status._notEquals = 'Completed'; 
datasource.query.filters.Status._notEquals = 'Cancelled'; 
datasource.load(); 
+0

그 형식은 나를 위해 작동하지 않는 것 같았지만 _notContains 옵션 [link] (http://stackoverflow.com/questions/42405004/how-can-i-filter-multiple)을 사용하여 작동시킬 수있었습니다. 테이블에 변수가 있습니까? noredirect = 1 # comment72055994_42405004) –