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 のサブクラスです)