Mad*_*d0g 5 extjs extjs4 extjs-mvc
我对ExtJS3没什么经验,现在从版本4开始.
在我的控制器中,我有这个:
init: function ()
{
this.control({
"userlist":
{
selectionchange: function (view, selected, opts)
{
//get to grid??
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
如何在不使用id的情况下访问发生此事件的网格?我想启用/禁用网格工具栏上的按钮(tbar)如果有选择的项目,但我不想给任何ID(不是栏,而不是单个按钮)
编辑:解决方案是使用refs控制器中的属性:
refs:
[
{
ref: "list",
selector: "userlist"
}
],
selectionchange: this.activateTbButtons
activateTbButtons: function (selected, opts)
{
if (selected.selected.length == 1)
{
var tb = this.getList().query("toolbar");
}
}
Run Code Online (Sandbox Code Playgroud)
Ade*_*ezj 10
刚刚发现你可以在Ext.selection.Model下使用属性视图和视图.
当您打开多个对象实例时,这可能很有用.
因此,要访问示例中的网格:
selectionchange: function (view, selected, opts) {
//get to grid??
var grid = view.view.ownerCt;
}
Run Code Online (Sandbox Code Playgroud)
编辑
我查看了选择更改事件的文档:
selectionchange( Ext.selection.Model this, Ext.data.Model[] selected, Object eOpts )
Run Code Online (Sandbox Code Playgroud)
该视图没有被传递给selectionchange处理程序。处理此问题的一个简单方法是使用Ext.getCmp()或使用 refs,如文档中所示Ext.app.Controller:
http://docs.sencha.com/ext-js/4-0/#!/api/Ext.app.Controller