任何机构都可以帮助我解决 flex 中的绑定问题吗?
can any body help me with binding trouble in flex?
我写了以下内容:
<mx:DataGrid id="courseslist" includeIn="Classes,Dorat,LogIn,Main,Students,Teachers"
x="11" y="160" width="1142" height="240"
creationComplete="courseslist_creationCompleteHandler(event)"
editable="true" itemClick="courseslist_itemClickHandler(event)"
showHeaders="false" textAlign="right">
<mx:columns>
<mx:DataGridColumn dataField="category" width="90" editable="true" editorDataField="selectedItem" activate="datagridcolumn1_activateHandler(event)" itemEditor="{inlineEditor}">
</mx:DataGridColumn>
<mx:DataGridColumn id="combostaff" dataField="teacher" width="170" editable="true" editorDataField="selectedItem">
<mx:itemEditor>
<fx:Component>
<mx:ComboBox dataProvider="{parentDocument.staffnames}">
</mx:ComboBox>
</fx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="maxno" width="79"/>
<mx:DataGridColumn dataField="regno"/>
<mx:DataGridColumn dataField="minno"/>
<mx:DataGridColumn dataField="startdate" width="120"
itemRenderer="mx.controls.DateField"
rendererIsEditor="true"
editorDataField="selectedDate" />
<mx:DataGridColumn dataField="coursecreation" editable="false"/>
<mx:DataGridColumn dataField="enddate" width="120"
itemRenderer="mx.controls.DateField"
rendererIsEditor="true"
editorDataField="selectedDate"/>
<mx:DataGridColumn dataField="cost" />
<mx:DataGridColumn dataField="coursename" />
</mx:columns>
</mx:DataGrid>
员工姓名是:
public var staffnames:Array = new Array();
从服务中获取价值:
public function getAllStaff_resultHandler(event:ResultEvent):void
{
tutortable.dataProvider=getAllStaff.lastResult;
staffnames = new Array();
for each (var i:Staff in getAllStaff.lastResult)
{
staffnames.push(i.name);
staff.push(i);
}
}
但是我没有得到组合框填充,而且员工姓名中也填充了数据,相反我得到了这个错误:
警告:无法绑定到 属性 'staffnames' on class 'spark.skins.wireframe::ApplicationSkin'
在 dataprovider
中使用 outerDocument.staffnames
,如下所示。
使数组可绑定,如:
[Bindable]
public var staffnames:Array;
像这样提供数据提供者:
<fx:Component>
<mx:ComboBox dataProvider="{outerDocument.staffnames}">
</mx:ComboBox>
</fx:Component>
服务价值:
public function getAllStaff_resultHandler(event:ResultEvent):void
{
tutortable.dataProvider=getAllStaff.lastResult;
staffnames = new Array();
for each (var i:Staff in getAllStaff.lastResult)
{
staffnames.push(i.name);
staff.push(i);
}
}
希望有用。
我写了以下内容:
<mx:DataGrid id="courseslist" includeIn="Classes,Dorat,LogIn,Main,Students,Teachers"
x="11" y="160" width="1142" height="240"
creationComplete="courseslist_creationCompleteHandler(event)"
editable="true" itemClick="courseslist_itemClickHandler(event)"
showHeaders="false" textAlign="right">
<mx:columns>
<mx:DataGridColumn dataField="category" width="90" editable="true" editorDataField="selectedItem" activate="datagridcolumn1_activateHandler(event)" itemEditor="{inlineEditor}">
</mx:DataGridColumn>
<mx:DataGridColumn id="combostaff" dataField="teacher" width="170" editable="true" editorDataField="selectedItem">
<mx:itemEditor>
<fx:Component>
<mx:ComboBox dataProvider="{parentDocument.staffnames}">
</mx:ComboBox>
</fx:Component>
</mx:itemEditor>
</mx:DataGridColumn>
<mx:DataGridColumn dataField="maxno" width="79"/>
<mx:DataGridColumn dataField="regno"/>
<mx:DataGridColumn dataField="minno"/>
<mx:DataGridColumn dataField="startdate" width="120"
itemRenderer="mx.controls.DateField"
rendererIsEditor="true"
editorDataField="selectedDate" />
<mx:DataGridColumn dataField="coursecreation" editable="false"/>
<mx:DataGridColumn dataField="enddate" width="120"
itemRenderer="mx.controls.DateField"
rendererIsEditor="true"
editorDataField="selectedDate"/>
<mx:DataGridColumn dataField="cost" />
<mx:DataGridColumn dataField="coursename" />
</mx:columns>
</mx:DataGrid>
员工姓名是:
public var staffnames:Array = new Array();
从服务中获取价值:
public function getAllStaff_resultHandler(event:ResultEvent):void
{
tutortable.dataProvider=getAllStaff.lastResult;
staffnames = new Array();
for each (var i:Staff in getAllStaff.lastResult)
{
staffnames.push(i.name);
staff.push(i);
}
}
但是我没有得到组合框填充,而且员工姓名中也填充了数据,相反我得到了这个错误: 警告:无法绑定到 属性 'staffnames' on class 'spark.skins.wireframe::ApplicationSkin'
在 dataprovider
中使用 outerDocument.staffnames
,如下所示。
使数组可绑定,如:
[Bindable]
public var staffnames:Array;
像这样提供数据提供者:
<fx:Component>
<mx:ComboBox dataProvider="{outerDocument.staffnames}">
</mx:ComboBox>
</fx:Component>
服务价值:
public function getAllStaff_resultHandler(event:ResultEvent):void
{
tutortable.dataProvider=getAllStaff.lastResult;
staffnames = new Array();
for each (var i:Staff in getAllStaff.lastResult)
{
staffnames.push(i.name);
staff.push(i);
}
}
希望有用。