在 GeoExt 中使用 toggleGroup 的问题
Posted
技术标签:
【中文标题】在 GeoExt 中使用 toggleGroup 的问题【英文标题】:Issue with using a toggleGroup within GeoExt 【发布时间】:2014-02-12 16:46:11 【问题描述】:我正在尝试向 GeoExt 应用程序添加一个按钮。理想情况下,我希望按钮工作流程是:
-
用户单击按钮。按钮现在“切换”为打开状态。
用户点击地图上的某处。
(始终有效)调用按钮后面的函数。
按钮关闭。
我有这个作为我的选项代码:
/* Options to be passed to my create function. */
options:
tooltip: 'Google StreetView',
iconCls: "icon-streetview",
enableToggle: false,
pressed: false,
toggleGroup: "toolGroup",
id: "streetview_tool"
我可以将按钮添加到工具栏,但切换无法正常工作。我已经尝试了几乎所有我能想到的参数组合。
a) 使用上述方法,我从 GeoExt 收到控制台错误:
TypeError: this.control is undefined
。步骤 1 到 3(以上)以这种方式工作。
b) 如果我删除了 toggleGroup
,我不会收到错误消息(除非 enableToggle
已设置为 true),但是按钮一开始就不会切换(步骤 2 和 3 是唯一的使用这种方法发生的情况)。
还有第二个(更大!)问题 - 用户是否切换按钮无关紧要,每次我点击地图时都会触发功能!
所以我的问题 - 我如何让这个按钮切换工作流程工作? 谢谢。
【问题讨论】:
【参考方案1】:我不太了解 geoext 的详细信息,但如果我正确理解该问题,当您单击地图时,您将无法取消切换按钮。我已经设置了一个示例,希望与您的问题有点相似:https://fiddle.sencha.com/#fiddle/3ms
解决方案只是调用
Ext.getCmp('streetview_tool').toggle(false)
单击面板的主体时。请注意,此示例使用 3.4。让我知道这是否有帮助,或者我缺少的图片是否还有更多内容。
【讨论】:
感谢您的回答。我不得不承认对 ExtJS 没有任何线索,并且我使用它删除了两层,这无济于事(GeoExt 周围有一个包装器,它是 ExtJS 周围的包装器)。您的示例完全符合我的要求,但我不清楚如何将其集成到我的示例中,因为新的 Panel 内容已被深度抽象掉。 另外,根据我更新的问题 - 该按钮目前基本上是“始终开启”。不知道为什么。以上是关于在 GeoExt 中使用 toggleGroup 的问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 geoserver+geoext+postgresql 与 geoserver+leaflet+postgresql 开发 WebGIS 应用程序?
如何替换 geoext.form.formpanel 中的协议
如何在 kotlin 中使 Material Button ToggleGroup 的所有子项不可点击