Flex:如何访问flex表单中的数据并将其提交给ColdFusion cfc?

时间:2008-12-19 18:25:02

标签: forms flex coldfusion cfc

我想将flex表单的值提交给ColdFusion cfc。

如果我有一个flex表单(见下文),那么表单中的数据是一个对象吗?或者我是否必须根据表单中的id创建一个对象,然后将该新对象传递给coldfusion组件?

<mx:Form x="10" y="10" width="790" id="myFrom" defaultButton="{createReport}">
    <mx:FormItem label="Resume Report Type:">
    <mx:RadioButtonGroup id="showtype"/>
    <mx:HBox>
        <mx:RadioButton groupName="showtype" id="NotUpdated" value="notupdated" label="Not Updated" width="100"  />
        <mx:RadioButton groupName="showtype" id="Updated" value="updated" label="Updated" width="75"  />
        <mx:RadioButton groupName="showtype" id="All" value="all" label="All" width="75"  />
    </mx:HBox>
    </mx:FormItem>
    <mx:FormItem label="User Organzation:">
        <mx:ComboBox dataProvider="{qOrganization}" labelField="UserOrganization" />    </mx:FormItem>

    <mx:FormItem label="Between the following dates:">
        <mx:HBox>
            <mx:DateField/>
            <mx:DateField left="10"/>
        </mx:HBox>
    </mx:FormItem>
    <mx:FormItem>

        <mx:Button label="Create Report" id="createReport"/>
    </mx:FormItem>  
    </mx:Form>

2 个答案:

答案 0 :(得分:1)

没有绑定到表单中任何控件的数据(ComboBox的dataProvider除外)。如果要通过最少的修改从表单中提取数据,请为每个控件分配“id”属性,并从ActionScript以编程方式访问它们:

var obj : MyObject = new MyObject();
obj.beginDate = beginDate.selectedDate;
obj.endDate = endDate.selectedDate;
obj.organization = Organization(comboOrg.selectedItem);
// etc

答案 1 :(得分:1)

不,这不是所有表单变量的集合或对象(这太容易了)。

如果这就是你想要的,你可以创建一个像Big Red Dog描述的自定义对象(brd6644)。这是可选的;在发送之前不需要创建对象。您可以将每个字段作为参数传递,通过其ID引用它们。这实际上取决于您的偏好以及您的CF服务是否基于OO。

您还可以选择创建数据模型并将其发送回CF,如下所示:

<!-- DATA MODEL -->
<mx:Model id="formModel">
    <form>
        <beginDate>{beginDate.selectedDate}</beginDate>
        <endDate>{endDate.selectedDate}</endDate>
        <organization>
            <name></name>
            <address></address>
        </organization>
    </form>
</mx:Model>

<!-- REMOTE OBJECT/SERVER SIDE FORM HANDLER -->
<mx:RemoteObject
    id="roSubmitForm"
    source="com.mycfc"
    destination="ColdFusion"
    showBusyCursor="true">

    <mx:method name="submitForm" result="onSubmit(event)">
        <mx:arguments>
            <form>
                <beginDate>{formModel.beginDate}</beginDate>
                <endDate>{formModel.endDate}</endDate>
                <organization>
                    <name>formModel.organization.name</name>
                    <address>formModel.organization.address</address>
                </organization>
            </form>
        </mx:arguments>
    </mx:method>
</mx:RemoteObject>

关于Flex data models的更多信息......我仍然没有完全卖出它们的用处......但这是另一种选择。