1

我在我的应用程序中使用带有 ExtJs3.4 的 geoExt!我创建了一个 mapPanel 并使用以下代码将 openlayers 地图添加到其中。

var mapPanel = new GeoExt.MapPanel({
        renderTo: 'gxmap',
        height: 500,
        width: 800,
        map: map,
        title: 'Map'
    });

之后我创建了 extjs 切换按钮

var button = new Ext.Button({
text: 'Measure Things',
enableToggle: true,
handler: function(toggled){
    if (toggled) {
        polygon.activate();
    } else {
        polygon.deactivate();
    }
}
});

当我想将此按钮添加到地图面板时,我得到 mapPanel 的 topPanel,之后当我想使用 topPanel 功能时,这些功能不起作用!

mapPanel.getTopToolbar().addButton(button);

或以下代码

topToolbar = mapPanel.getTopToolbar();
topToolbar.addButton(button);

当我看到 chrome 开发人员工具时,我看到 addButton 功能或面板 topToolbar 的其他功能出现此错误! 错误:

uncaught typeError: cannot call method 'addButton' of undefined

为什么我不能使用 topToolbar 功能?使用添加按钮映射
的 geoext 教程链接mapPanel.getTToolbar().addButton(button);

4

1 回答 1

3

我有同样的问题。您必须在创建 mapPanel 之前添加此额外行:

var toolbar = new Ext.Toolbar();

在 mapPanel 里面添加这个属性:

tbar: toolbar

您现在可以将按钮添加到工具栏:

mapPanel.getTopToolbar().addButton(button);
于 2013-11-11T11:30:29.693 回答