当我单击 Flex Datagrid 中的列时,我想打开一个包含一些问题的对话框。对话框关闭后,我想用对话框中的信息填充该单元格。
到目前为止,我所拥有的是:
public function startEdit(event:DataGridEvent):void {
// event.dataField is null, so we figure it out ourselves
var column:DataGridColumn = dgQObjects.columns[event.columnIndex];
if (column.dataField == "parameters") {
// depending on the type, we can fill in parameters
var type:String = ListCollectionView(dgQObjects.dataProvider).getItemAt(event.rowIndex).type;
switch(type) {
case "Gauge":
event.preventDefault();
quartzObjects[event.rowIndex].parameters = "foo";
updateLocalStorage();
dgQObjects.validateNow();
break;
case "Indicator":
break;
case "New Row":
event.preventDefault();
break;
}
}
}
它将“参数”设置为“foo”,这很好,但它并没有在数据网格中显示(validateNow() 什么都不做)。另外,如果我输入一个 Alert(),startEdit 会继续触发,我永远无法关闭 Alertbox。网格定义如下:
<QuartzUI:DoubleClickDataGrid width="800" x="10" y="10" height="337"
id="dgQObjects"
editable="true"
itemEditBegin="{startEdit(event)}"
itemEditEnd="{checkQuartzObjects()}"
creationComplete="{initDataGrid()}"
>
(DoublieClickDataGrid 是 DataGrid 的子类)