2011-05-02 2 views
1

YAHOO.util.Event.addListener ("genes", "change", function (e) { var value = YAHOO.util.Event.getTarget (e) .value; 경우 (YAHOO.lang.isValue (값)) { myDataTable.getDataSource()있는 sendRequest (NULL { 성공 :. 함수 (요청, 응답, 페이로드) { this.initializeTable();필터링 된 데이터에 대한 클라이언트 쪽 페이지 매김

   var rs = response.results; 
       var filtered = []; 
       for(var i = 0; i < rs.length; i++) { 
         //alert(rs[i].gene); 
        if(rs[i].gene == value) { 
         filtered[filtered.length] = rs[i]; 
        } 
       } 
       this.getRecordSet().setRecords(filtered, 0); 
       this.render(); 
      }, 
      scope:myDataTable, 
      argument:null 
     }); 
    } 
}); 

이것은 데이터를 필터링하는 코드입니다. 선택을위한 옵션을 변경할 때 데이터를 완벽하게 얻었습니다. 페이지 매김이 작동하지 않습니다. r도 '0'으로 표시됩니다. ecords가 표시됩니다.

아무거나 나에게 제안 할 수 있습니다.

감사합니다.

답변

1

이 작업을 시도 할 수 있습니다 :

dobMenuButton.subscribe("selectedMenuItemChange",function(e) { 
    var value =e.newValue.value; 
    if(YAHOO.lang.isValue(value)) { 
    myDataTable.getDataSource().sendRequest(null, { 
     success:function(request, response, payload) { 
      this.initializeTable(); 
      var rs = response.results; 
      var filtered = []; 
      for(var i = 0; i < rs.length; i++) { 
       if(((rs[i].dateOfBirth).format("MM/dd/yyyy")) == value) { 
        filtered[filtered.length] = rs[i]; 
       } 
      } 
      this.getRecordSet().reset();             
      MCMPagination.paginatorvar.setTotalRecords(filtered.length,true); 
      this.getRecordSet().setRecords(filtered, 0); 
      this.render(); 
    }, 
    scope:myDataTable, 
     argument:myDataTable.getState() 
    }); 
    } 
});