繁体   English   中英

ExtJS控制器探测。 未捕获的TypeError:对象[object Object]没有方法'setSortState'

[英]ExtJS controller probelem. Uncaught TypeError: Object [object Object] has no method 'setSortState'

使用MVC架构ExtJS4.0.1编写代码。 当我开发主要表格时,我遇到了网站搜索扩展的问题。

当我尝试在控制器中创建新的小部件时,我需要在子面板中渲染结果。 因此,当我编写示例代码时,遇到以下问题:

**Uncaught TypeError: Object [object Object] has no method 'setSortState'**

我不明白为什么它会显示该错误消息。 我需要一些帮助来解决该问题。

下面我想显示我的代码:

//Panel which is showing to user

    Ext.define('Semantics.view.main.menuView', {
        extend: 'Ext.panel.Panel',
        layout: 'fit',
        alias: 'widget.Menu',
        title: "",
        tbar: [
            {
//search field
                        name:'mainSearchText',
                        id:'mainSearchText',
                        xtype: 'textfield',
                        defaultValue: 'Search',
                        height: 20
            },
            {
                name:'mainSearchButton',
                id:'mainSearchButton',
                xtype: 'button',
                text: 'Find',
                height: 20
            }
        ]
    });


//controller for search request
    Ext.define('Semantics.controller.main.mainController', {
        extend: 'Ext.app.Controller',
        views: ['main.menuView','mainSearch.MainSearchResultForm'],
        refs: [
            { ref: 'menuPanel', selector: 'Menu' },
            { ref:'mainSearchText',selector:'#mainSearchText'},
            {ref: 'mainSearchForm',selector:'#mainSearchForm'},
            {ref:'MainSearchGrid',selector:'#MainSearchGrid'}
        ],

        init: function () {
            this.control({
                'Menu': {
                    render: this.onPanelRendered
                },
                'Menu button[name="mainSearchButton"]': {
                    click: this.onButtonClick
                }
            });
        },
        onButtonClick: function (button) {
            var me = this;
            if(button.name=="mainSearchButton") {

                        var mtextFiled = me.getMainSearchText().getValue();

                        console.log(mtextFiled);
                        Ext.Ajax.request({
                            scope: this,
                            url: 'app/mainSearchT/findText/',
                            method: 'POST',
                            params: {
                                text: me.getMainSearchText().getValue()
                            },
                            success: function (result) {
                                mainPanel = me.getMenuPanel();
                                mainPanel.removeAll(true);
                                loadingMask = new Ext.LoadMask(mainPanel, { msg: "Loading" });
                                loadingMask.show();
                                var mname = 'MainSearchResultForm';
                                var start_info_panel = Ext.widget(mname);
                                mainPanel.items.add(start_info_panel);
                                loadingMask.hide();
                                mainPanel.doLayout(); //that line gives that error
                            },
                            failure: function (result) {
                                console.log(result);
                            }
                        });

            }
        },

        onPanelRendered: function () {
        }
    });

当我在Ext.grid.Panel列中包含不受支持的xtype时,遇到了相同的错误。 我必须删除xtype,这解决了问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM