【问题标题】:Selecting row on selection of CheckBox in Datagrid在 Datagrid 中选择 CheckBox 时选择行
【发布时间】:2011-01-01 12:23:34
【问题描述】:

我有一个包含 5 列的数据网格。第一列有复选框,其余四列有来自 dataProvider 的数据。

我有两个相关的问题: 首先:我希望在单击复选框时选中该行,或者如果单击多个复选框,则每一行都应在选中复选框的数据网格中保持选中状态。

第二:如果选择了一行或多行,相应的复选框也应该被选中。

我的代码如下:

<mx:DataGrid id="dg_trashContent" allowMultipleSelection="true"
                     verticalGridLines="true"
                     dataProvider="{trashDataProvider}"                      
                     width="100%"                        
                     height="100%"
                     fontFamily="Arial">    
    <mx:columns>
        <mx:DataGridColumn id="col0"
                            textAlign="left"
                            sortable="false"
                            headerText="Name"
                            headerStyleName="datagridHeader"
                            dataField="name">
                    <mx:itemRenderer>
                        <mx:Component>
                            <mx:VBox horizontalAlign="center">
                                <mx:Script source="base.as"/>
                                <mx:Script>
                                    <![CDATA[
                                        import mx.controls.Alert;                                           
                                        public function selectRow():void{

                                        }                                           
                                    ]]>
                                </mx:Script>
                                <mx:CheckBox id="rowCheckBox" click="selectRow();"/>
                            </mx:VBox>
                        </mx:Component>
                    </mx:itemRenderer>
        </mx:DataGridColumn>
        <mx:DataGridColumn id="col1"
                            textAlign="left"
                            sortable="false"
                            headerText="Name"
                            headerStyleName="datagridHeader"
                            dataField="name"/>
        <mx:DataGridColumn id="col2"
                            textAlign="left"
                            sortable="false"
                            headerText="Original Location"
                            headerStyleName="datagridHeader"
                            dataField="absoluteTag"/>                                           
        <mx:DataGridColumn id="col4"
                            textAlign="left"
                            sortable="false"
                            headerText="Date Deleted"
                            headerStyleName="datagridHeader"
                            dataField="date"/>
        <mx:DataGridColumn id="col5"
                            textAlign="right"
                            sortable="false"
                            headerText="Size (mb)"
                            headerStyleName="datagridHeader"
                            dataField="size"/>
    </mx:columns>
</mx:DataGrid>          

从现在开始,我一直在试图弄清楚我应该怎么做。但无法得到任何解决方案。有人可以帮助我吗?

问候 泽山

【问题讨论】:

    标签: apache-flex


    【解决方案1】:

    我会尝试两件事(如果你还没有尝试过的话):

    1. 确保“可选”标志设置为 true
    2. 单击复选框时 - 将该项目添加到数据网格 selectedItems 数组中

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      您需要为复选框编写自定义项目渲染器,并通过扩展它来修改 DataGrid 的代码并覆盖一些方法,如 selectItem()

      见:http://cookbooks.adobe.com/post_Datagrid_headerRenderer_checkbox_to_select_checkbo-7262.html

      【讨论】:

        猜你喜欢
        • 2019-02-14
        • 2012-01-23
        • 2012-08-11
        • 1970-01-01
        • 2010-11-10
        • 1970-01-01
        • 2013-03-31
        • 2013-04-19
        • 2013-06-02
        相关资源
        最近更新 更多