0

私のFlexアプリケーションDataGridのように...

<mx:DataGrid id="userListDataGrid" x="60" y="40" width="520" height="148" dataProvider="{schedule}" creationComplete="userListDataGrid_creationCompleteHandler(event)">
    <mx:columns>
        <mx:DataGridColumn dataField="courseDate" headerText="Date"/>               
        <mx:DataGridColumn dataField="courseName" headerText="Course Name"/>
        <mx:DataGridColumn id="usertype" dataField="userType" headerText="User Type"/>

        <mx:DataGridColumn headerText="Reminder">
            <mx:itemRenderer>
                <mx:Component>
                    <mx:HBox>
                      <mx:Button id="join" label="Join" borderColor="#5d93b9"
                               color="#04becf">
                      </mx:Button>  
                      <mx:Button id="start" label="Start" borderColor="#5d93b9"
                               color="#04becf">
                      </mx:Button>
                    </mx:HBox>
                </mx:Component>
            </mx:itemRenderer>
        </mx:DataGridColumn>

    </mx:columns>
</mx:DataGrid>

私のDataGridビュー

しかし、DataField値に関してボタンを変更する方法、つまり。

Host----Start Button
Attendee----JOin Button

最終出力

4

1 に答える 1

1

itemRenderer の dataChange イベントをリッスンし、usertype 値に基づいてボタンの可視性を切り替えます。サンプル要素を提供しなかったため、ここでデータ型について少し「推測」しています。ただし、おおよそ次のようなものです。

    <mx:DataGridColumn headerText="Reminder">
        <mx:itemRenderer>
            <mx:Component>
                <mx:HBox dataChange="onDataChange()">
                  <mx:Script>
                      protected function onDataChange():void{
                         if(data.usertype == 'Host'){
                            join.visible = true;
                            start.visible = false;
                         } else {
                            join.visible = false;
                            start.visible = true;
                         }
                      }
                  </mx:Script>
                  <mx:Button id="join" label="Join" borderColor="#5d93b9"
                           color="#04becf">
                  </mx:Button>  
                  <mx:Button id="start" label="Start" borderColor="#5d93b9"
                           color="#04becf">
                  </mx:Button>
                </mx:HBox>
            </mx:Component>
        </mx:itemRenderer>
    </mx:DataGridColumn>

コードはブラウザで書いたので、構文的に正しくない可能性があります。

于 2013-01-01T06:18:54.910 に答える