2011-06-18 82 views
1

現在我遇到一個問題,我似乎在哪裏可以不改變爲Ext.data.Store帕拉姆名稱pagestartlimit,並dirExtJS的4:更改商店PARAM名

在ExtJS的3我可以這樣做:

paramNames : 
{ 
    start : 'startIndex', 
    limit : 'pageSize', 
    sort : 'sortCol', 
    dir : 'sortDir' 
} 

我嘗試添加該配置的Ext.data.Store ExtJS的爲4然而 '開始', '限制', '排序',和「目錄'仍然顯示爲默認參數名稱。我需要能夠改變這一點,因爲服務器端功能需要這些參數名稱。這也會導致分頁和遠程排序無法工作,因爲參數名稱與服務器端資源所期望的不匹配。

那麼在ExtJS 4中有沒有新的方式來改變這些參數名稱,如ExtJS 3?

回答

2

使用此代碼:

proxy: { 
    type: 'ajax', 
    url: '/myurl', 
    method: 'GET', 
    **extraParams: { myKeyword: 'abcd' },** 
    reader: { 
     type: 'json', 
     root: 'rows' 
    } 
} 

現在,你可以在下面的方式您myKeyword值改爲從abcdxyz

gridDataStore.proxy.extraParams.keyword='xyz'; 
gridDataStore.load(); 

這將設置您的參數值並重新加載存儲。

2

要只是一個商店,你可以做到這一點的load之前動態地修改參數:

/* set an additional parameter before loading, not nice but effective */ 
    var p = store.getProxy(); 
    p.extraParams.searchSomething = search; 
    p.extraParams.somethingelse = 'This works too'; 

    store.load({ 
     scope : this, 
     callback: function() { 
      // do something useful here with the results 
     } 
    }); 
+0

感謝您提供此信息。我搜索了'callback'。 – VMAtm

0

的鍵被重新命名並移動到Ext.data.Proxy對象。這裏有一個簡單的例子,它告訴ExtJS的使用默認的Grails參數名:

Ext.create('Ext.data.Store', { 
    // Other store properties removed for brevity 
    proxy: { 
     // Other proxy properties removed for brevity 
     startParam: "offset", 
     limitParam: "max", 
     sortParam: "sort", 
     directionParam: "order", 
     simpleSortMode: true 
    } 
}); 

我還設置了simpleSortMode,使每個參數被髮送到服務器作爲獨立請求參數。