首页 > 解决方案 > SmartGWT MenuItem 显示检查 canSelect(false)

问题描述

我的 SmartGWT 应用程序有问题。

我应该在菜单中显示不同的组织,用户可以在其中看到它们并可以更改他的组织。

但问题是,他应该看到活跃的组织,看到特定的组织是活跃的,但他应该无法点击它。

到目前为止,这是我的代码:

if(menuItemList[location].getAttribute("id").equals(USER_MANAGER.getUserOrganisation())){
    menuItemList[location].setChecked(true);
    menuItemList[location].setCanSelect(false);
}else{
    menuItemList[location].setChecked(false);
    menuItemList[location].setCanSelect(true);
}

问题是,如果 MenuItem 是“canSelect(false)”,SmartGWT 不会显示 Checked-Icon(复选标记)。

生成的 HTML 代码也没有区别,让我看看 MenuItem 是否与活动组织相同。

有没有人有解决方法或知道我做错了什么?

标签: gwtmenuitemsmartgwt

解决方案


我找到了解决方案:

我为我想做的事情使用了错误的事件处理程序。

由于我让 MenuItem 使用 DataSource 而不是直接生成,因此在代码执行时这些元素不存在

以前我使用过DrawHandler()并且元素目前还没有ID(至少我认为)。

这就是为什么我if(){}else{}不会按照我的意愿去做。

但是使用MembersChangedEvent,代码在元素获取它的 id 后执行,因此元素可以使用 my 中的 ID 检查它们的 ID USER_MANAGER

希望这可以帮助有同样问题的人


推荐阅读