簡體   English   中英

ExtJS 4-如何使用帶有來自表單的最新值的參數加載網格存儲?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM