2014-02-06 100 views
0

Im'使用EXT 4.2.0。使用EXTJS從視圖向另一個視圖發送值

我有2次:圖1和圖2

鑑於1我有一個Ext.grid.Panel其(在他的相關聯的控制器)含有SelectionChange事件lisetner。

在selectionchange被觸發後,我去了視圖2中,我有一個窗體。 我需要的是從視圖中對控制從圖2中1

我通過控制發送的值,禁用按鍵的意思是......

的信息,關於發送值的問題,心中已經已經嘗試

Ext.getCmp('view2ID').getForm().loadRecord(this.getMyVar()); 

但這似乎不工作,我不知道爲什麼! 你能幫我嗎? :)

+0

更清楚的是,您是否在選擇更改時創建窗體(yourView2)? – Dev

+1

我沒有要知道爲什麼它不起作用的元素,但是您描述的場景看起來很基本。有一個你的控制器在視圖1上被事件調用的方法,它修改視圖2. –

+0

你的意思是「創建」到底是什麼意思? – Monster

回答

0

選項1:由於@洛倫茨說,調用該方法在控制器

selectionchange:function(record, selected, eOpts){ 
    //getController 
    controller = globalVar.getController('Controller'); 
    controller.onSelectionChangeEvent(record); 
} 

選項2:您可以創建一個實例 當在傳遞配置對象的視圖2 view1,提及配置屬性;

0

的問題是難以平靜:從視圖1發送的動作被befaure圖2 rendred執行!即使我的代碼是有些人認爲這樣的:

ControllerOfView1 
{ 
CodeToLoadView2; 
InstructionsToControlView2; 
} 

的解決方案是在我的視圖2添加監聽器和參數化AfterRender階段。 因此,代碼HASE成爲:

afterrender: function() { 
      this.loadRecord(this.getMyVar2()); 
     } 
0

您可以使用自定義火災事件中,你可以發送你想要的數據和組件參考。

app.fireEvent('selectionChanged',view1.grid); 

您需要偵聽view2中的selectionChanged。 類似於

app.on("selectionChanged",onSelectionChanged) 

onSelectionChanged : function(grid){ 
      console.log(grid); 
} 
相關問題