2016-10-10 48 views
0

我創建了一個小提琴來說明我嘗試實現的內容。如何直接從服務器端過濾的商店獲取值

https://fiddle.sencha.com/#fiddle/1i8e

在撥弄,還有兩個網格和形式。

當選擇第一個網格的一行時,會過濾第二個網格(在服務器端,此代碼未在小提琴中實現)。

是這樣的:

 storeGrid2.load({ 
      params: { 
       'item': id_item 
      } 
     }); 

在按下,形式E的按鈕獲取從第二柵格存儲值(預先過濾)。

這效果很好。

但是,我不需要第二個網格作爲我的應用程序中的組件。

是否有任何方式獲得第二個網格商店值(沒有網格作爲組件),在被過濾後?我想當我選擇網格1的第一行,過濾grid2存儲(沒有網格作爲組件),獲取這個存儲值(這裏是他的問題),並添加字段形成。

編輯:

我知道我的情況不容易暴露。

假設,例如,一個餐廳的應用程序。

第一個網格顯示星期幾。第二個網格顯示當天可用的食物成分。窗體顯示菜單。

當用戶選擇值爲星期一的第一個網格行時,第二個網格會顯示土豆,蘋果和雞肉。表格根據這些食物成分顯示菜單:土豆湯,蘋果派和炸雞。

如果是餐廳客戶,當他選擇星期一(第一個網格) 只是菜單出現,而不是第二個網格(客戶不需要知道當天哪些食物配料可用,只是菜單)。

這可以通過隱藏網格來完成。

但是,我試圖實現的是,是否有可能直接獲取沒有(第二個)網格組件的數據存儲。

所有發生在ViewModel/Store層的事件都不存在視圖層(第二個網格)。

當我使用store.load()沒有實例化成分格我得到以下錯誤:遺漏的類型錯誤:無法讀取的不確定

+0

你聽說過Ext.getStore的'讓您的商店的引用() '? – Alexander

+0

是的。我也試過Ext.data.StoreManager.get('my storeId');我必須解決的第一個問題是如何在沒有網格的情況下加載商店。 storeGrid2.load({params:{'item':id_item}});顯然要運行需要網格組件。我的商店位於viewModel中。我想要直接從商店寬度中獲取de值grid – josei

+0

好吧,基本上你想要的是根據你在第一個網格上選擇的值過濾第二個商店,而不需要第二個網格來表示這些數據,那麼正確嗎?只需使用鏈式商店來做到這一點 - http://docs.sencha.com/extjs/6.2.0/classic/Ext.data.ChainedStore.html –

回答

1

財產「負荷」移動處理函數到ViewController。

創建一個名爲onButtonClick的函數。在按鈕配置,添加

listeners: { 
    click: 'onButtonClick' 
} 

在onButtonClick功能,採用

var store = this.getViewModel().getStore('mystore1'); 

然後

store.load({ 
    success: function(records) { 
     var name = records[0].get('name'); 
     ... 
    } 
}); 
+0

感謝Alexander和Guilherme – josei

+0

感謝Francesco。顯然,store.load()在沒有網格的情況下不起作用,我得到以下錯誤:Uncaught TypeError:無法讀取undefined屬性'load'undefined – josei

相關問題