zk:组合框中的绑定数据

时间:2014-08-19 23:17:25

标签: combobox zk

我有实体FDataTableColumn,其字段referenceFieldId是long类型并且引用到此列的id。在创建页面上我有所有列的列表的组合框,我想选择一个并将其id值放入我的referenceFieldId。 这是我的组合框:

<combobox model="@load(fdtcm.fDataTableColumns)"  selectedItem="@bind(fdtcm.fDataTableColumn.referenceFieldId)" width="50%">
                                <template name="model">
                                    <comboitem label="@load(each.table.tableName.concat('.').concat(each.tableField))" value="@bind(each.id)"/>
                                </template>
                            </combobox>

看起来一切都很好,但我得到了这个例外

Cannot convert FDataTableColumn{id=6, type=STRING, tableField='EMAIL'} of type class ru.webvane.framework.metadata.entity.FDataTableColumn to class java.lang.Long at [file:/E:/apache-tomcat-7.0.28%20(64)/webapps/fw/fw/importData/dataTableColumn/input.zul, line:86]

据我所知,我的组合试图将整个对象保存到referenceFieldId,但为什么呢?因为我正在尝试保存对象的id

value="@bind(each.id)"

任何人都可以帮助我或解释我做错了什么。谢谢

2 个答案:

答案 0 :(得分:2)

SergeBud,

有可能这样做但是正如askkuber已经指出的那样,组合框内部的类是将要保存的类。

现在你必须实施your own custom converter

然后应该像zul一样:

selectedItem="@bind(fdtcm.fDataTableColumn.referenceFieldId) @converter(fdtcm.myConverter)"

答案 1 :(得分:0)

您可以查看我编写的以下代码zkframeworkhint.blogspot.in/2013/05/zk-combobox-with-selectoption.html,这将向您解释使用Combobox的正确方法。

编辑: -

然后,您可以查看此链接Combobox这将有助于您

selectedItem 应该是 FDataTableColumn 类的对象,但在你的情况下,你将它称为 id 长 strong>这可能是异常更改代码的原因。