获取datagrid列的复选框值?

时间:2011-02-25 07:09:04

标签: flex datagrid

我的Web应用程序中有一个datagrid,其中包含一个使用itemrenderer的复选框。我怎样才能获得复选框的值?

2 个答案:

答案 0 :(得分:2)

由于在滚动DataGrid时可以回收itemRenderers,因此您应该将复选框的值与dataProvider中的值绑定。然后,您可以循环遍历ArrayCollection并获取Selected==true

所有的行

我的数据对象:

package 
{
  [Bindable]
  public class MyData
  {
    private var _name:String;
    private var _selected:Boolean;

    public function get Name():String { return _name; }
    public function set Name(value:String):void { _name = value; }

    public function get Selected():Boolean { return _selected; }
    public function set Selected(value:Boolean):void { _selected = value; }

  }
}

我的DataGrid:

<mx:DataGrid dataProvider="{myArrayCollectionOfMyDataObjects}">
  <mx:columns>
    <mx:DataGridColumn headerText="Name" dataField="Name"/>
    <mx:DataGridColumn headerText="Selected" dataField="Selected">
      <mx:itemRenderer>
        <fx:Component>
          <mx:VBox width="100%" height="100%" paddingLeft="2" verticalAlign="middle" horizontalAlign="center" horizontalScrollPolicy="off">
            <mx:CheckBox id="chkSelected" change="{data.Selected = chkSelected.selected}" selected="{data.Selected}" />
          </mx:VBox>
        </fx:Component>
      </mx:itemRenderer>
    </mx:DataGridColumn>
  </mx:columns>
</mx:DataGrid>

答案 1 :(得分:0)

这是一个例子:

If (CType(row.FindControl("chkEmailAlert"), CheckBox).Checked = True) Then
    Arr_EmailAlert(i) = "True"
Else
    Arr_EmailAlert(i) = "False"
End If

就像这样一个名为DirectCast的Class将在那里,通过使用FindControl方法,我们可以找到Control checkBox的id和值也可以使用它。