2010-12-15 4 views
4

ExtJS로 만든 그리드가 있고이를 정의한 div에 렌더링합니다. 새로 고침이 요청되면 간단히 "비어있는"상태로 JQuery를 사용하여 그리드를 다시 렌더링합니다 새로운 객체마다 생성 :EXTJS 데이터 저장소를 사용하여 그리드를 다시 렌더링

var grid = new xg.GridPanel({ 
    store: store, 
    columns: [ 
    ... 
    renderTo: 'db-grid' 

한 다음 내가 이것을 사용 사업부를 비 웁니다 :

$("#db-grid").empty(); 

이 3 또는 4 새로 고침처럼 잘 작동하고 정말 느리게로드 것, I 그것이 모든 개체를 다시 생성하기 때문에 이것이라고 상상해보십시오. 매번 변경되는 유일한 것은 "저장소"입니다. AJAX 요청을 통해 매번 새로운 그리드를 만들지 않고이를 새로 고치는 방법이 있습니까?

저는 ExtJS를 처음 접했고, JQuery에서 약간의 전환을하고 있습니다. ExtJS 대안을 알고 있다면 JQuery에서 "empty()"함수를 사용하는 이유입니다. , 그 대신에 사용하게되어 기쁠 것입니다.

고마워요!

답변

4

load(Object options)reload(Object options) 방법을 http://dev.sencha.com/deploy/dev/docs/에보십시오.

이 기능의 예는 Ext.PagingToolbar에서 볼 수 있습니다. 나는이 코드를 포함

doRefresh : function(){ 
     this.doLoad(this.cursor); 
    }, 

:

// private 
    doLoad : function(start){ 
     var o = {}, pn = this.getParams(); 
     o[pn.start] = start; 
     o[pn.limit] = this.pageSize; 
     if(this.fireEvent('beforechange', this, o) !== false){ 
      this.store.load({params:o}); // here is the call you're interested in 
     } 
    }, 

doLoad()이 단순히 방법 doRefresh()에서 호출 :이 클래스는 그리드 각 시간을 파괴하지 않고, 그리드 및 저장을 갱신 버튼을 포함 완전한 예제를 위해, 그러나 정말로 당신이 걱정해야 할 것은 load() 또는 reload() 메소드뿐입니다. 메소드에 전달할 수있는 인수의 전체 목록을 보려면 API를 읽으십시오.

관련 문제