2013-07-27 2 views
0

사용자 지정 webapi 함수에 의해 반환 된 데이터를 바인딩하는 데 도움이 필요합니다. 말 내 webapi 기능이 구문 호출은 다음과 같다 :사용자 지정 webapi 함수 저장 extjs 그리드에 바인딩

var filter = {<some conditions here>}; 

Myapp.systemcontroller.Getdata(filter).then(function(result){ 
    --- this result contain my data and total record 
    }); 

가 어떻게 그리드에 저장 프록시로이 기능을 결합 후 결합 할 수 있습니까?

도움을 주시면 감사하겠습니다.

답변

0

다른 방법으로 저장할 데이터를 추가 할 수 있습니다. 귀하의 데이터 구조 (배열 또는 개체)에 따라 다릅니다.

  1. grid.getStore.add (모델) -ref : http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store
  2. grid.getStore.loadData (데이터 [추가]) - REF : http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadData
  3. grid.getStore.loadRawData (데이터,) [추가] - REF : http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadRawData
  4. grid.getStore.loadRecords (기록 옵션) - REF : http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.data.Store-method-loadRecords

귀하의 경우에는 loadRecords() 또는 add()를 사용할 수 있습니다.

+0

친애하는 하리, 덕분에 나는 그것을 사용하여 추가하거나 loaddata 그것을 사용하여 저장소에 바인딩 할 수 있습니다 ...하지만 내가 프록시를 통해이 함수를 바인딩 할 필요가 있기 때문에 나는 격자와 함께 할당 된 페이징 도구 모음 .. 내가 이것을 사용하면 데이터를 표시하는 방법, 우리가 페이징 툴바를 클릭 할 때 새로 고침하면 URL없이 서버 프록시를 사용하고 있다는 오류가 발생합니다. –

0

문제가 해결되었습니다. 내 가게에서 어떤 프록시를 사용하고 있지 않습니다. 위의 API를 사용하여 데이터를 검색하고 loadData 메소드를 사용하여 저장소에 바인딩합니다. 그럼 난 내 도구 모음의 totalProperty뿐만 아니라

을 설정합니다 - 프록시를 호출에서 우리를 방지 할 수

toolBarChange: function (tbar, pageData, eOpts) { 
     var pageSize = PrIns.getApplication().Configuration.PageSize; 
     var me = this; 
     me.getLogList().setLoading(true); 
     var f = Ext.create(MyApp.webapi.filter.LogFilter', { pageIndex: pageData, pageSize: pageSize, orderBy: 'Ascending' }); 
     var gridstore = this.getLogList().getStore(); 
     Myapp.systemcontroller.Getdata(f).then(function (data) { 
      gridstore.loadData(data.Items); 
      gridstore.totalCount = data.TotalNumber; 
      gridstore.currentPage = pageData;  
      var pgTb = Ext.getCmp('DataListPgTb'); 
      pgTb.onLoad(); 
      me.getLogList().setLoading(false); 
     }); 
     return false; 
    }, 

반환 거짓 toolbarchange 이벤트

Myapp.systemcontroller.Getdata(f).then(function (data) { 
      gridstore.loadData(data.Items); 
      gridstore.totalCount = data.TotalNumber; 
      var pgTb = Ext.getCmp('DataListPgTb'); 
      pgTb.onLoad(); 
      me.getLogList().setLoading(false); 
     }); 

그런 다음로드