我对 ItemRenderer 有一个非常奇怪的问题。我有一个带有 ViewStack 的 main.mxml 容器。当用户登录时,初始视图包含一个 AdvancedDataGrid——包含一些数据和下面的 ItemRenderer——它只显示一个 Delete 按钮。当用户登录时,这个 AdvancedDataGrid 会自动从数据库中刷新。应根据用户的角色成员身份启用或禁用删除按钮。
场景 1(以管理员身份登录):
- 管理员用户登录——立即显示数据网格视图,并为每一行正确启用删除按钮
- 登出
- 以非管理员用户身份登录 - 数据已刷新,所有行仍处于启用状态,除了一个。它可能是第一行、第二行或第三行——它是完全随机的。这真的很奇怪。. .
我重新启动浏览器并遵循方案 2。. .
场景 2(以非管理员身份登录):
- 非管理员用户登录 - 立即显示数据网格视图,并且每行都正确禁用删除按钮
- 登出
- 以管理员用户身份登录 -除一个之外,所有行仍处于禁用状态。它可能是第一行、第二行或第三行——它是完全随机的。与第一种情况相反。
有趣的事实——如果我在 checkDeleteSecurity 中设置一个断点,只有当第一个用户登录并且第一次刷新 DATAGRID 时它才会到达它。当我注销并且下一个用户登录时,数据网格会刷新,但 checkDeleteSecurity 断点永远不会被捕获。
[Bindable]
private function checkDeleteSecurity ():Boolean
{
return (SecurityProxy.CheckSecurity(SecurityProxy.UserName));
}
<mx:LinkButton label="Delete" click="onDeleteClick()" id="lbDelete" enabled="{checkDeleteSecurity()}"/>