ItemRendererに本当に奇妙な問題があります。ViewStackを備えたmain.mxmlコンテナーがあります。ユーザーがログインすると、初期ビューにはAdvancedDataGrid(一部のデータと以下のItemRendererが含まれます)が含まれ、[削除]ボタンが表示されます。ユーザーがログインすると、このAdvancedDataGridはデータベースから自動的に更新されます。[削除]ボタンは、ユーザーのロールメンバーシップに基づいて有効または無効にする必要があります。
シナリオ1(管理者としてログイン):
- 管理者ユーザーがログインします-データグリッドビューがすぐに表示され、すべての行で[削除]ボタンが適切に有効になります
- ログアウト
- 非管理者ユーザーとしてログイン-データが更新され、1つを除くすべての行が引き続き有効になります。これは、1行目、2行目、または3行目である可能性があり、完全にランダムです。それは本当に奇妙です。。。
ブラウザを再起動し、シナリオ2に従います。。。
シナリオ2(非管理者としてログイン):
- 管理者以外のユーザーがログインします-データグリッドビューがすぐに表示され、すべての行で[削除]ボタンが適切に無効になります
- ログアウト
- 管理者ユーザーとしてログイン-1つを除いて、すべての行が引き続き無効になっています。これは、1行目、2行目、または3行目である可能性があり、完全にランダムです。最初のシナリオのちょうど逆です。
興味深い事実-checkDeleteSecurityにブレークポイントを設定すると、最初のユーザーがログインし、DATAGRIDが最初に更新されたときにのみブレークポイントに到達します。ログアウトして次のユーザーがログインすると、データグリッドは更新されますが、checkDeleteSecurityブレークポイントがキャッチされることはありません。
[Bindable]
private function checkDeleteSecurity ():Boolean
{
return (SecurityProxy.CheckSecurity(SecurityProxy.UserName));
}
<mx:LinkButton label="Delete" click="onDeleteClick()" id="lbDelete" enabled="{checkDeleteSecurity()}"/>