gpt4 book ai didi

java - 如何在flex中创建动态数据网格

转载 作者:行者123 更新时间:2023-12-01 15:34:53 25 4
gpt4 key购买 nike

我正在尝试在 FLEX 中创建数据网格。问题是我希望它 100% 动态 - 即列和数据。

基本上,我需要通过数据库查询的结果集填充数据网格,该数据将通过标准 java spring jdbc dao 层收集。该查询与“select * from tablename”一样通用,因此结果集可以根据查询而变化。

我的计划是将此结果集转换为某种形式的 java 对象,我最初的想法是某种类型的 Map,其中包含行的列名称和值。

我遇到的问题是我需要将此结果集转换为 ActionScript 对象(通过花岗岩),然后我可以使用它来填充数据表。

我已经看到了很多关于如何动态地将列添加到数据网格,并通过数据字段对象绑定(bind)数据的示例 - 但如果我不知道我将拥有多少列或什么列,那么我不知道如何做到这一点列名称将为。

希望这是有道理的。

谢谢

最佳答案

如果您知道如何动态创建列,那么是什么导致您陷入困境?
从数据库中提取值。将结果转换为ArrayList<Map> 。然后在actionscript中它将被映射到ArrayCollection(Object)。由于集合中的每个对象都具有相同的结构(属性),因此您可以轻松创建数据网格:

public function resultEventHandler(event:ResultEvent) {
var res:ArrayCollection=event.result;
if (!res || res.length == 0)
return;
var dg:DataGrid=new DataGrid();
var typicalObj:Object=res.getItemAt(0);
var columns:Array=[];
//iterate through object properties
for (var prop:String in typicalObj) {
//set header text and dataField for new column
var c:DataGridColumn=new DataGridColumn(prop);
columns.push(c);
}
dg.columns=columns;
dg.dataProvider=res;
//add your datagrid on stage, do it as you need
view.addElement(dg);
}

关于java - 如何在flex中创建动态数据网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9025639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com