dataGrid如何直接输入数据

Ansonxing 2010-10-09 12:27:21
我想通过动态创建n行m列的datagrid,然后直接在表格里输入数据,

动态创建已经实现了,但空白表格里不能直接输入数据,

改了其属性editable为true也不能输入。


现在想直接在表格内打入数字(表格输入之前无任何数据),

然后通过点击一个button,

获取数字并自动按表格的行列对应存入一个二维数组里,

请问这该如何实现?
...全文
144 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Ansonxing 2010-10-10
[Quote=引用 11 楼 leemiki 的回复:]

不对!
arrayColl:ArrayCollection = new ArrayCollection();

arrayColl的长度不还是0,和你没定义有什么区别

arrayColl放的是对象集合,对象属性对应于DataGrid的列

比如一个Person对象,有三列分别对应name,age,sex属性
var personColl:ArrayCollection = ne……
[/Quote]
多谢高手指点!!!
回复
leemiki 2010-10-09
不对!
arrayColl:ArrayCollection = new ArrayCollection();

arrayColl的长度不还是0,和你没定义有什么区别

arrayColl放的是对象集合,对象属性对应于DataGrid的列

比如一个Person对象,有三列分别对应name,age,sex属性
var personColl:ArrayCollection = new ArrayCollection();
for(var i:int=0;i<DataGrid的行数;i++){
var person:Person = new Person();
person.name = "";
person.age= "";
person.sex= "";
}

dg.dataProvider = personColl;


回复
Ansonxing 2010-10-09
[Quote=引用 9 楼 leemiki 的回复:]

给DataGrid的dataProvider赋上一个空的ArrayCollection

空指的是所有元素都为""不是null,这样就可以了
[/Quote]
是这样吗?但好像还是不行
[Bindable]
public var arrayColl:ArrayCollection = new ArrayCollection();
protected function commit_clickHandler(event:MouseEvent):void
{
simplex.removeAllElements();
m = int(constrain.text);
n = int(vari.text);
var i:int;
var dg:DataGrid = new DataGrid();
dg.dataProvider = arrayColl;
dg.id = "myDG";
dg.width = 400;
dg.editable = true;
simplex.addElement(dg);
dg.rowCount = m;
for(i=1;i<=n;i++){
dg.columns = dg.columns.concat(addColumn(i));
}
}

public function addColumn(variable:int):DataGridColumn{
var column:DataGridColumn = new DataGridColumn();
column.headerText = "X"+variable;
column.dataField = " ";
column.editable = true;
return column;
}
回复
leemiki 2010-10-09
给DataGrid的dataProvider赋上一个空的ArrayCollection

空指的是所有元素都为""不是null,这样就可以了
回复
Ansonxing 2010-10-09
[Quote=引用 7 楼 leemiki 的回复:]

DataGrid没有设定dataProvider,怎么显示??

没有数据显示又怎么会有行列???你又怎么能编辑呢???
[/Quote]
想数据通过手工输入,就想excel那样,一开始就是空的,
该如何实现?
回复
leemiki 2010-10-09
DataGrid没有设定dataProvider,怎么显示??

没有数据显示又怎么会有行列???你又怎么能编辑呢???
回复
Ansonxing 2010-10-09
上面那个搞错了,编辑不了,重新发过
			protected function commit_clickHandler(event:MouseEvent):void
{
simplex.removeAllElements();
m = int(constrain.text);
n = int(vari.text);
var i:int;
var dg:DataGrid = new DataGrid();
dg.id = "myDG";
dg.width = 400;
dg.editable = true;
simplex.addElement(dg);
dg.rowCount = m;
for(i=1;i<=n;i++){
dg.columns = dg.columns.concat(addColumn(i));
}
}

public function addColumn(variable:int):DataGridColumn{
var column:DataGridColumn = new DataGridColumn();
column.headerText = "X"+variable;
column.editable = true;
return column;
}
回复
Ansonxing 2010-10-09
不知哪里错了,还是不可编辑,帮忙看看哪里出了问题,谢谢

protected function commit_clickHandler(event:MouseEvent):void
{
simplex.removeAllElements();
m = int(constrain.text);
n = int(vari.text);
var i:int;
var dg:DataGrid = new DataGrid();
dg.id = "myDG";
dg.width = 400;
dg.editable = true;
simplex.addElement(dg);
dg.rowCount = m;
for(i=1;i<=n;i++){
dg.columns = dg.columns.concat(addColumn(i));
}
}

public function addColumn(variable:int):DataGridColumn{
var column:DataGridColumn = new DataGridColumn();
column.headerText = "X"+variable;
column.editable = true;
column.
return column;
}
回复
student_2008 2010-10-09
在点击DataGrid的某项时会触发itemClick事件,可以在这个里面获得这项的内容,可以进行数据库操作实现即时修改
回复
Jason-Jin 2010-10-09
使用itemreander
回复
passself 2010-10-09
改了其属性editable为true也不能输入


这个肯定是可以输入的,但是不一定能保存,所以你还需要对输入完成之后设置相应的函数来保存输入的结果,这样才可以。
回复
leemiki 2010-10-09
[Quote=引用楼主 ansonxing168 的回复:]
改了其属性editable为true也不能输入。
[/Quote]

。。。肯定是你哪里书写有问题

有问题把相关代码贴出来~~~~

利用ListEvent获取columnIndex、rowIndex作为数组下标,直接操作dataProvider即可
回复
相关推荐
发帖
Flex
创建于2007-12-13

4328

社区成员

多媒体/设计 Flex
申请成为版主
帖子事件
创建了帖子
2010-10-09 12:27
社区公告
暂无公告