2012-08-06 3 views
0

나는 datefields와 comboboxes를 사용하여 상점을로드하도록 선택합니다. 저장소가 그리드에로드 될 때 페이징 도구 모음이 있습니다. 여태까지는 그런대로 잘됐다.extjs 호출을위한 baseParam

사용자가 다음 페이지를 클릭하면 pagingtoolbar는 함께 날짜 필드의 데이터를 보내지 않습니다. 나는 baseparams에 관해 뭔가를 읽었지 만, 이것은 작동하지 않습니다.

내가 사용의 ExtJS 4.1

이 내 가게 : 여기

NL.commListDetails = new Ext.data.Store({ 
    model: 'stepDetails', 
    pageSize: 20, 
    loadMask: false, 
    sortOnLoad: true, 

    proxy: { 
     type: 'ajax', 
     url: detailURL, 
     startParam: '', 
     limitParam: '', 
     pageParam: '', 
     reader: { 
      type: 'json', 
      root: 'slaevents', 
      totalProperty: 'slaevents[0].totalCount' 
     } 
    }, 
    baseParams: {fromDate:NL.startDate}, 
    autoLoad: false 
}); 

그리고 페이징 도구 모음 내가 페이징과 FROMDATE, endDate가를 보낼 필요가

bbar: Ext.create('Ext.PagingToolbar', { 
     store: NL.commListDetails, 
     displayInfo: true, 
     displayMsg: 'Displaying record {0} - {1} of {2}', 
     emptyMsg: "No records to display", 

    }), 

에게 있습니다. 둘 다 NL.startDate 및 NL.endDate에서 사용할 수 있습니다. 다음 페이지를 클릭하면 어떻게 전송할 수 있습니까?

답변

1

저장소에 대한 baseParams 구성이 없습니다. 여분의 매개 변수를 보내려면 ajax 프록시에 extraParams 구성을 사용해야합니다.

proxy: { 
     type: 'ajax', 
     .... 
     extraParams: {fromDate:NL.startDate}, 
     .. 
    }, 

또한 가게를 만드는 것은 그들이 정적 의미합니다 때 PARAMS을 정의하는, 그래서 그들은 원; t 변화 당신이 datefields 또는 콤보를 수정하면 ...

그래서 수정이 듣고있을 것입니다 콤보 상자 또는하여 DateField에 이벤트를 변경하고 추가 PARAMS를 재설정 : 나는 그렇군요

change: function(this,value){ 
     NL.commListDetails.getProxy().getExtraParams().comboName = value; 
} 

편집. baseParams가 있지만 elementloader에 있으며 load가 직접 호출 될 때만 호출됩니다. 이는 loadPage를 사용하는 페이징 도구 모음에 해당하지 않습니다. 이 중 하나에 잘못 될 수도 있지만 extraparams 사용하고 괜찮습니다.

+0

빠른 답장을 보내 주셔서 감사합니다. 이 작업을 수행 할 때 NL.commListDetails.getProxy()가 발생합니다. getExtraParams는 함수가 아닙니다. –

+1

내 실수는 모든 매개 변수를 가져올 메서드가 없으므로 setExtraParam (comboName, value); 매개 변수로 바꿀 수 있습니다. http://docs.sencha.com/ext-js/4-1/#!/api/Ext.data.proxy.Ajax-method-setExtraParam – nscrob

관련 문제