我的Web应用程序中有一个datagrid,其中包含一个使用itemrenderer的复选框。我怎样才能获得复选框的值?
答案 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和值也可以使用它。