ZK ComboBox onchange更改列表框中的所有组合框

ZK ComboBox onchange更改列表框中的所有组合框,combobox,inline,onchange,zk,Combobox,Inline,Onchange,Zk,我对列表框和组合框行为有问题。我有一个包含一组行的列表框,我尝试内联编辑,并根据组合框的值更改字段的值。但是当我在一行的组合框中选择一个值时,其他行的组合框的所有值都会更改为相同的值。请让我知道我做错了什么。谢谢你的帮助 这是我的密码: <template name="model" var="item"> <listitem > <listcell label="@loa

我对列表框和组合框行为有问题。我有一个包含一组行的列表框,我尝试内联编辑,并根据组合框的值更改字段的值。但是当我在一行的组合框中选择一个值时,其他行的组合框的所有值都会更改为相同的值。请让我知道我做错了什么。谢谢你的帮助

这是我的密码:

            <template name="model" var="item">
                <listitem >
                    <listcell label="@load(item.id)"/>  
                    <listcell label="@load(item.descCodigoTrafico)"/>              
                    <listcell label="@load(item.descAmbitoDeTrafico)"/>
                    <listcell>
                        <combobox 
                            model="@load(vm.listaPrecioEspecial)" 
                            onChange="@command('addToUpdate', entry=item)"
                            selectedItem="@load(item.precioEspecial) @save(item.precioEspecial, before='updateItems')">
                            <template name="model" var="el">
                                <comboitem label="@load(el)"/>
                            </template>
                        </combobox>
                    </listcell>
                    <listcell label="@load(item.tipoDescuento)" />
                    <listcell>
                        <decimalbox inplace="true" 
                        value="@load(item.ppm) @save(item.ppm, before='updateItems')"
                        onChange="@command('addToUpdate', entry=item)" 
                        format="#.0000"/>
                    </listcell>
                </listitem>
            </template>

问题应该是

model="@load(vm.listaPrecioEspecial)"

将每个
组合框
设置为与其模型相同的
集合
,因此它绑定到所有
组合框
实例。

问题应该是

model="@load(vm.listaPrecioEspecial)"

将每个
组合框
设置为与其模型相同的
集合
,因此它将绑定到所有
组合框
实例。

我遇到了相同的问题,就像Nabil A一样。说问题是模型,所有项目都是一样的。我解决了为每个项目创建新模型的问题。 而不是:

model="@load(vm.listaPrecioEspecial)"
我说的是:

model="@load(vm.getNewListaPrecioEspecial())

在VM类中,您必须创建一个名为GetNewListAprecioeSecial的方法,该方法返回一个新列表。(在我的例子中是一个新的SortingPagingListModel)

我也有同样的问题,就像Nabil a说的那样。问题是模型,所有项目都是一样的。我解决了为每个项目创建新模型的问题。 而不是:

model="@load(vm.listaPrecioEspecial)"
我说的是:

model="@load(vm.getNewListaPrecioEspecial())

在VM类中,您必须创建一个名为GetNewListAprecioeSecial的方法,该方法返回一个新列表。(在我的例子中是一个新的排序分页列表模型)

你好,Nabil a.谢谢你的回答!这可能是原因。你知道有什么办法可以避免吗?我必须为每一行设置一个新模型吗?让
getListaPrecioEspecial()
返回列表的副本(?)。但是请注意,Java没有深度克隆/复制!因此,如果列表中的对象不是来自支持深度克隆的框架,则不能简单地创建新实例,也不希望实现自己的克隆,我建议,如果数据结构不太复杂,可以使用。如果您这样做,请阅读网站上的说明。感谢Nabil A.的评论。我会尽力让你知道的。数据结构是一个包含几个字符串的列表,每个页面大约有十个组合,所以我假设数据量不大。再次感谢!嗨,纳比尔A。谢谢你的回答!这可能是原因。你知道有什么办法可以避免吗?我必须为每一行设置一个新模型吗?让
getListaPrecioEspecial()
返回列表的副本(?)。但是请注意,Java没有深度克隆/复制!因此,如果列表中的对象不是来自支持深度克隆的框架,则不能简单地创建新实例,也不希望实现自己的克隆,我建议,如果数据结构不太复杂,可以使用。如果您这样做,请阅读网站上的说明。感谢Nabil A.的评论。我会尽力让你知道的。数据结构是一个包含几个字符串的列表,每个页面大约有十个组合,所以我假设数据量不大。再次感谢!