我希望有一个人可以帮助我.....
我正在尝试为问卷模块构建动态表单。在以前的一些帖子的基础上,我正在使用类似于问题“如何在 flex 中动态生成表单(<mx:form>)? ”的过程,我已经设法证明了扩展 XML 以包含日历的事实,组合框等
我的问题是现在需要从 ArrayCollection 而不是从 xml 文件中获取数据。我正在寻找循环通过 AC,其中 type = "text" 呈现一个文本输入字段,其中 type =“calendar” 呈现一个日历等。
到目前为止,我的代码只是查看一个 textinput 字段(并对包含的所有评论感到抱歉;)是:-
[Bindable]
public var AC:ArrayCollection = new ArrayCollection( [
{type:'text', direction:'horizontal', tooltip:'test tooltip', label:'my textbox label', id:'1'},
{type:'text', direction:'horizontal', tooltip:'another tooltip', label:'another label', id:'2'}
]);
private function init():void
{
var form:Form = new Form();
for each(var elements:String in AC)
{
switch( elements.@type.toString())
{
case "text":
var fi:FormItem = new FormItem();
// fi.toolTip = elements.tooltip.toString();
// fi.required = getglobalprofile.required.toString();
// fi.direction = getglobalprofileb[i].@direction;
var li:Label = new Label();
// li.text = getglobalprofileb[i].@label;
// li.width = 100;
var ti:TextInput = new TextInput();
ti.text = "test";
ti.width = 200;
form.addChild(fi);
fi.addChild(li);
fi.addChild(ti);
// break;
}
}
this.addChild( form);
}
]]>
</mx:Script>
<!-- Data grid added just to check that AC getting data-->
<mx:DataGrid id="profile" selectedIndex="1" dataProvider="{AC}" width="100%" height="50%" />
<mx:Form id="form" name="form">
</mx:Form>
如果您对工作 xml 版本(仅渲染)感兴趣,请告诉我,我也会发布此内容