2012-10-08 67 views
2

選擇項目子項我正在實現一個項目選取器以用於拉力賽自定義應用程序,並希望從選擇器中選擇父項時自動選擇子項目。我能夠獲得我想要選擇的對象的ObjectID和名稱,但似乎無法從選取器中選擇它們。我嘗試使用「fireEvent」方法,但沒有成功。這是我到目前爲止:在父項選擇

var teamPick = this.down('#filterPanel').add({ 
    xtype: 'rallymultiobjectpicker', 
    id: 'teams', 
    modelType: 'project', 
    fieldLabel: 'Teams', 
    listeners: { 
     select: function(field, selected) { 
      Ext.create('Rally.data.WsapiDataStore', { 
       autoLoad: true, 
       fetch: [ 'Name', 'ObjectID' ], 
       filters: [ 
        { property: 'Parent.ObjectID', value: selected.ObjectID } 
       ], 
       model: 'Project', 
       listeners: { 
        load: function(store, data) { 
         Ext.Array.each(data, function(child) { 
          console.log(child.get('Name')); //Logs the child name 
         }); 
        } 
       } 
      }); 
     }, 
     scope: this 
    } 
}); 
+0

我想實現類似的路線的東西,沒有這個問題解決了嗎?你能在這裏解釋一下嗎? –

回答

0

我能夠在不使用fireEvent方法的情況下完成此操作。相反,我用的getValue和setValue方法的方法和添加子項目手動狀態:

this.down('#filters').add({ 
     xtype: 'rallymultiobjectpicker', 
     id: 'teams', 
     modelType: 'project', 
     listeners: { 
      blur: function() { this.down('#teams').collapse(); }, 
      select: function(field, selected) { 
       Ext.create('Rally.data.WsapiDataStore', { 
        autoLoad: true, 
        fetch: [ 'Name', 'ObjectID' ], 
        filters: [ 
         { property: 'Parent.ObjectID', value: selected.ObjectID } 
        ], 
        model: 'Project', 
        listeners: { 
         load: function(store, data) { 
          var selected = this.down('#teams').getValue(); 
          Ext.Array.each(data, function(child) { 
           selected.push(child.data); 
          }); 
          this.down('#teams').setValue(selected); 
         }, 
         scope: this 
        } 
       }); 
      } 
      scope: this 
     } 
    }); 
0

你使用的是2.0p3嗎?在MultiObjectPicker中未正確觸發的事件存在已知問題。這應該在2.0p4中解決。我在2.0p4應用程序中運行你的代碼,並按預期工作。

作爲一個側面說明,你的孩子的項目查詢可以這樣寫,以及:

filters: [ 
    { property: 'Parent', value: '/project/' + selected.ObjectID } 
] 

組件的2.0p4版本還增加了一個新的事件稱爲selectionchange,讓你的當前選擇的數組值(因爲它是一個多選擇選擇器)。當選擇/取消選擇特定項目時,會有單獨的選擇和取消選擇事件。

+0

我將如何去選擇哪個對象來觸發事件?我有該領域的原始名稱,但我如何選擇它來正確定位該事件? –