[英]ExtJS 4 - How to load grid store with its params carrying latest values from a form?
我有一個窗口,頂部是搜索表單,底部是網格。
用戶可以在搜索表單中輸入值,然后單擊按鈕-獲取記錄。
單擊此按鈕時,我通過以下方式將表單字段中的值作為參數傳遞來加載網格存儲:
store.load({
params:{
key1:Ext.getCmp('field1').getValue();
}
});
我嘗試在商店代理本身中提供參數,但不幸的是,它總是占用初始值(呈現表單時的值),而不是用戶在表單字段中輸入的最新值。 以下是我在創建商店時用於為參數分配值的方法:
extraParams:{
key1:Ext.getCmp('field1').getValue();
}
我想從兩方面尋求指導:
一種。 在定義存儲時,是否可以確保存儲在查詢服務器之前從表單字段中獲取最新/當前值,以便在調用load函數時不必提供這些值?
這一點變得更加必要,因為我在底部有一個分頁工具欄,其中帶有一個刷新按鈕(以及用於導航的下一個,最后一個,上一個,第一個圖標)。
現在,每當用戶單擊刷新(或任何導航圖標)時,都將加載沒有查詢參數的商店。
因此,第二件事是:
灣 如果“ a”的答案是-調用加載函數時手動將最新值傳遞給參數-那么我該如何在其中編寫“刷新”按鈕和導航圖標(即下一個,最后一個,上一個和第一個)的處理程序分頁工具欄,以便我可以將最新的表單值傳遞給load函數。
感謝您的任何幫助。
PS:我正在使用ExtJS 4。
yourStore.on('beforeload',function(store, operation,eOpts){
operation.params={
status:cmbStatus.getValue(),
value:txtBuscarPor.getValue(),
empresa:'saasd',
app:'dsads'
};
},this);
與您的問題(b)有關(並且因為您在注釋部分中特別要求此問題):
我只看到一種非常有限的掛鈎PagingToolbar按鈕處理程序的標准方法。
Ext.toolbar.Paging
在實際更改當前頁面之前會觸發“ beforechange”事件。 請參閱API文檔 。 返回false
的偵聽器將停止頁面更改。
所有其他方法都需要擴展Ext類,如果ComboBox可以使您更輕松地使用自己的BoundList
實現(這是呈現下拉列表的類)或將配置參數傳遞給BoundList
話,那么這將不是問題。 分頁工具欄。
我曾經試圖在Ext留言板上提出這種缺乏靈活性的方法,但幾乎被忽略了。
一個可能的解決方案是使用商店的“ beforeload”事件並在其中提供參數列表。 這樣,無論何時加載商店,都會觸發其beforeload事件,並且拾取的值始終是最新的。 希望這可以幫助某人尋找類似的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.