Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 使用列和行索引获取flex datagrid单元格值_Apache Flex_Datagrid_Row_Recovery - Fatal编程技术网

Apache flex 使用列和行索引获取flex datagrid单元格值

Apache flex 使用列和行索引获取flex datagrid单元格值,apache-flex,datagrid,row,recovery,Apache Flex,Datagrid,Row,Recovery,我将flex用于一个应用程序,但在从一个列中有复选框的datagrid恢复数据时遇到了一些问题,问题是我不能使用selectedIndex或selectedItem函数,因为它们用于保存选中的项 有没有办法使用列和行索引恢复datagrid信息?比如: MyDataGrid[row][column]或MyDataProvider[row][column]或任何函数组合,允许我仅使用行和列恢复信息 感谢如果您只想使用行和列索引获取数据网格的单元格值,可以扩展DataGrid组件并添加一个简单的函数

我将flex用于一个应用程序,但在从一个列中有复选框的datagrid恢复数据时遇到了一些问题,问题是我不能使用selectedIndex或selectedItem函数,因为它们用于保存选中的项

有没有办法使用列和行索引恢复datagrid信息?比如:

MyDataGrid[row][column]或MyDataProvider[row][column]或任何函数组合,允许我仅使用行和列恢复信息


感谢

如果您只想使用行和列索引获取数据网格的单元格值,可以扩展DataGrid组件并添加一个简单的函数

这是一本书

它看起来像这样:

//自定义数据网格

<?xml version="1.0" encoding="utf-8"?>
<s:DataGrid xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" 
        width="400" height="300">
<fx:Script>
    <![CDATA[
        import spark.components.gridClasses.GridColumn;

        public function getElementAt(row:int, col:int):Object
        {
            if (this.dataProvider.length < row + 1 || this.columns.length < col + 1)
                return null;
            else
                return this.dataProvider.getItemAt(row)[(this.columns.getItemAt(col) as GridColumn).dataField];
        }
    ]]>
</fx:Script>
</s:DataGrid>

您将获得“fld13”

如果您只想使用行和列索引获得数据网格的单元格值,您可以扩展DataGrid组件并添加一个简单的函数

这是一本书

它看起来像这样:

//自定义数据网格

<?xml version="1.0" encoding="utf-8"?>
<s:DataGrid xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
        xmlns:mx="library://ns.adobe.com/flex/mx" 
        width="400" height="300">
<fx:Script>
    <![CDATA[
        import spark.components.gridClasses.GridColumn;

        public function getElementAt(row:int, col:int):Object
        {
            if (this.dataProvider.length < row + 1 || this.columns.length < col + 1)
                return null;
            else
                return this.dataProvider.getItemAt(row)[(this.columns.getItemAt(col) as GridColumn).dataField];
        }
    ]]>
</fx:Script>
</s:DataGrid>

如果使用原始DataGrid控件,则会得到“fld13”

,最好使用
DataGridColumn
itemToLabel
方法,因为
item[dataField]
在属性值包含点符号时会导致异常,例如
“customer.name”


框架使用相同的方法提供网格单元中显示的文本。如果网格中的复选框由布尔属性驱动,则返回值将为
true
false
如果使用原始DataGrid控件,则最好使用
DataGridColumn
itemToLabel
方法,因为
item[dataField]当属性值包含点表示法时,例如
“customer.name”
将导致异常:


框架使用相同的方法提供网格单元中显示的文本。如果网格中的复选框由布尔属性驱动,则返回值将为
true
false

是否可以显示一些显示问题的代码?恐怕我不明白你的问题。Flex中有几个数据网格组件,所以我们不知道您所说的是哪一个。有一个包含行/列信息的数据库,但很难说它是否对您有帮助。DataGrid只接受实现IList的数据提供程序。IList有一个名为getItemAt的方法。这将为您提供该行(即该行中显示的列表中的对象)。可以通过分析DataGrid结构来确定列。但是有件事困扰着我,你是怎么编码的?似乎您没有以正确的方式使用DataGrid、渲染器和其他东西。您能展示一些显示问题的代码吗?恐怕我不明白你的问题。Flex中有几个数据网格组件,所以我们不知道您所说的是哪一个。有一个包含行/列信息的数据库,但很难说它是否对您有帮助。DataGrid只接受实现IList的数据提供程序。IList有一个名为getItemAt的方法。这将为您提供该行(即该行中显示的列表中的对象)。可以通过分析DataGrid结构来确定列。但是有件事困扰着我,你是怎么编码的?您似乎没有以正确的方式使用DataGrid、渲染器等。
getElementAt(0, 1)
    public function getElementAt(row:int, col:int):Object {
        var item:Object = dataProvider.getItemAt(row)
        var column:DataGridColumn = dataGrid.columns[column] as DataGridColumn;
        var value:String = column.itemToLabel(item);
        return value;
    }