2

我在 extjs4 工作。我有带有复选框的树视图 -

Ext.define('Balaee.view.qb.qbquestion.tree1', {
extend: 'Ext.tree.Panel',
title: 'Simple Tree',
id:'tree1',
alias : 'widget.tree1',
store:'qb.qbquestionStore',
displayField: 'text',
rootVisible : true,
multiSelect : true,
renderTo: Ext.getBody(),
    dockedItems: [{
        xtype: 'toolbar',
        items: {
            text: 'Get checked nodes',
            handler: function(){
                var tree = this.up('panel');
                var records = tree.getView().getChecked(),
                    names = [];

                Ext.Array.each(records, function(rec){
                    names.push(rec.get('text'));
                });

                Ext.MessageBox.show({
                    title: 'Selected Nodes',
                    msg: names.join('<br />'),
                    icon: Ext.MessageBox.INFO
                });
            }}}]});

所以我在这个处理函数中检查了树节点。我想在 extjs4 的控制器中获取那些已检查的节点。那么如何在 extjs4 的控制器中编写这个处理函数呢?或者如何通过单击控制器中的提交按钮来获取这些选中的节点?

4

2 回答 2

0

您需要在控制器初始化函数中添加组件事件并从那里调用回调函数。请参考以下示例。

在视图部分

 this.buttons = [
            {
                text: 'Save',
                action: 'save'
            }]

在控制器部分

init: function() {
        this.control({
           'useredit button[action=save]': {
                click: this.updateUser
            }
        });
    }
 ...
    updateUser: function(button) {
       // write your stuff here.   
    }

如果您发现任何困难,请参考下面的煎茶指南示例。

http://docs.sencha.com/extjs/4.2.0/#!/guide/application_architecture

谢谢。

于 2013-06-14T09:02:26.487 回答
0

在您的控制器中使用 refs 获取对您的树视图的引用这将允许您在事件处理程序中访问您的树视图,例如

this.getTreeView()

您可以在控制器的 init 函数中为按钮定义事件处理程序

试试这个,如果你在发布代码时遇到困难,我们会帮助你

更新:

此外,您需要在视图上定义 xtype xtype: 'tree1'

在您的参考文献中,试试这个:

refs: [{ ref: 'treeView', selector: 'tree1' }],

现在,您应该能够访问this.getTreeView()您的控制器方法。让我们知道你的进展。

于 2013-06-14T06:45:01.290 回答