Flex DataGrid의 열을 클릭 할 때 몇 가지 질문이있는 대화 상자를 열려고합니다. 대화 상자가 닫히면 대화 상자의 정보로 해당 셀을 채 웁니다.모달 대화 상자를 열어 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()}"
>
당신은 모델 객체에 데이터 바인딩을 통해이 작업을 수행해야
분명히 itemEditBeginning도 있습니다. 약간 다릅니다. 이를 사용하면 DataGrid가 업데이트됩니다. –
필자는 이미이 말을 몇 번 했었습니다. 핵심 기능을 수정하고 싶지 않으면 DataGrid의 하위 클래스를 만들 필요가 없습니다. 두 번 클릭하면 팝업이 열리는 것은 적절하지 않습니다. – RIAstar
필드를 편집 할 때 doubleclick이 사용되고이 열의 경우 대화 상자가 열립니다. 내 질문은 doubleclick과 관련이 없으며 그리드 업데이트와 관련이 있습니다. –