大家用zk6有没有遇到listbox设置了checkmark="true" multiple="true" 运行后只显示radio不能显示checkbox的问题?
首先,请大家注意你的数据对象是ListModelList还是List,使用ListModelList是有原因的;
1.如果是ListModelList,那么请在new ListModelList之后
datas.setMultiple(true);
如果直接使用的是List对象,则不用设置,checkbox是会显示的,但是两者都没有全选框。
2.[不建议使用]即使你设置以后你会发现,在listheader中的全选按钮没有了,这时如果我们还是自己实现一个全选功能的话,在listhead中添加代码:
<listhead width="100%">
<listheader width="45px">
<checkbox>
<attribute name="onCheck">
if (self.isChecked()) {
lbx.selectAll();
} else {
lbx.clearSelection();
}</attribute>
</checkbox>
</listheader>
...
</listhead>
即可解决checkbox不显示的问题。ok。
注意:如果这样做在zk6中实现的全选其实是5版本的功能,用在mvc的模式下是可以用,但对于6来说并没有意义,zk6没有全选是有原因的,它使用了ListModelList,在界面上逐个选择时可以触发事件,通知ListModelList,数据的选择状态被改变了,然后就可以在类中直接使用datas.getSelection()得到被选中的记录Set.所以从ZK6升级后listbox的这一改变来看,MVVM的设计模式正在逐步的演化,后面的版本定会更加的完善,可能会完成脱离MVC的设计模式,这样一来,冗余度将大大的降低。
3.[建议方法]那么应该如何解决这一问题呢,当然是通过注册一个事件来改变ListModelList的选择状态。
<listhead width="100%">
<listheader width="45px">
<checkbox onCheck="@command('selectAllOrCancel',var=self.checked)"/>
</listheader>
...
</listhead>
后台Java类:
@Command
@NotifyChange("datas")
public void selectAllOrCancel(@BindingParam("var") boolean checked) {
if (checked)
datas.setSelection(datas);
else
datas.clearSelection();
}
这时写一个测试方法就可以验证:
@Command
@NotifyChange({ "totalSize", "datas" })
public void activate() {
for (User u : datas.getSelection()) {
System.out.println(u.getName());
}
ok,感谢”未来之路”的对这个问题感兴趣。
分享到:
相关推荐
在Windows Presentation Foundation (WPF) 中,ListBox是一个常用的控件,用于展示一系列可选择的项。在许多应用程序中,为了提供更多的操作选项,我们可能需要为ListBox添加右键菜单。这个实例将指导你如何实现这一...
- ListBox控件设置了`SelectionMode="Multiple"`属性,以便用户可以同时选择多个项目。 2. **后台逻辑**: - `btnAddRoutes_Click`方法实现了从ListBox1向ListBox2的数据移动。 - 遍历ListBox1的所有项目。 - ...
在Windows Presentation Foundation (WPF) 中,`ListBox`是一个常用的数据展示控件,它允许用户从一系列项目中进行选择。本篇文章将深入探讨如何利用WPF的`ListBox`创建一个美观且功能丰富的用户界面。 首先,`...
例如,在本例中,通过对`ListBox`中的每一项设置不同的背景色(如偶数项为一种颜色,奇数项为另一种颜色),可以让用户更容易地区分不同的项目,尤其是在项目数量较多的情况下更为明显。 #### 2. 实现方法 实现这...
ListBox控件在Windows Forms或ASP.NET等开发环境中是常见的用户界面元素,用于展示一系列可选择的项目。在本文中,我们将深入探讨如何利用ListBox控件来实现数据源字段的选择,特别是针对C#编程语言。 首先,我们...
在WPF(Windows Presentation Foundation)应用开发中,`ListBox`是一个常用的数据展示控件,它允许用户通过列表形式查看和选择数据。在这个场景中,我们要讨论如何在`ListBox`中显示图片,这是一个常见的需求,特别...
首先,要让ListBox显示横向滚动条,我们需要在控件属性中设置`HorizontalScrollbar`属性为`True`。在Windows Forms或WPF中,这通常可以在设计视图中直接修改,或者在代码中用如下方式设置: ```csharp // Windows ...
在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)环境中实现拖放效果,特别是如何将一个ListBox中的数据项拖动到另一个ListBox中。WPF是.NET Framework的一部分,提供了丰富的用户界面功能,...
根据需求调整`ListBox`的样式,例如,设置`ItemHeight`以适应图像大小,或者设置`OwnerDraw`属性为`true`来自定义绘制行为。 ### 9. 兼容性与适应性 在不同的平台和设备上,可能需要处理不同尺寸的屏幕和分辨率。...
ListBox设置水平滚动条,包含2个接口: 1.根据字符内容自动设置水平滚动条的长度, 2.手动设置水平滚动条的字符串长度。封装好了接口,可直接调用。
1. **SelectionMode**:此属性用于设置`listBox`中项目的选中模式。它支持两种主要模式: - **Single**:表示用户只能选择一个项目。 - **Multiple**:允许用户通过按住Ctrl键来选择多个项目。 2. **Rows**:此...
ListBox是Windows Forms应用程序中常用的控件之一,常用于展示一系列可选择的项目。在C#编程中,ListBox提供了丰富的功能,允许用户通过交互来选择一个或多个条目。本实例将深入探讨如何使用C#创建并操作ListBox,...
ListBox是Windows Presentation Foundation (WPF) 和Windows Forms (WinForms) 中常见的控件,用于显示一系列可选择的项目。在C#编程环境中,ListBox通常被用作用户界面的一部分,允许用户从列表中进行单选或多选...
在Windows Forms(WinForm)应用开发中,Listbox控件是一种常见的用户界面元素,用于显示一系列可选择的项目。在某些交互设计中,允许用户通过拖放操作将Listbox中的条目从一个列表移动到另一个列表是提高用户体验的...
在C#编程中,Listbox控件是一种常用的数据展示组件,它允许程序员向用户显示一系列条目或选项。当我们处理大量数据或者实时更新内容时,可能会遇到需要实现Listbox自动滚动的功能。这个功能通常用于确保最新的添加项...
在Windows Forms应用程序中,`ListBox`控件是一个常用的组件,用于显示一系列可选择的项。在C#编程中,我们经常需要将自定义对象绑定到`ListBox`,以实现更复杂的业务逻辑。标题"Listbox中保存对象"指的是如何在`...
ListBox是Windows Forms和Web开发中常用的一种控件,主要用于显示一系列可选择的项。在本文中,我们将深入探讨如何在Windows Forms或ASP.NET环境中实现ListBox的上下左右移动功能,并支持通过Ctrl键进行多选。 首先...
在MFC(Microsoft Foundation Classes)框架中,ListBox控件是一种常用的数据展示组件,它允许用户通过单选或多选来操作列表中的项目。本教程将详细讲解如何实现ListBox控件每行颜色的改变,以增强界面的可读性和...
在C# WinForm应用开发中,用户界面交互是至关重要的,而`ListBox`控件是常用的元素之一,用于展示列表数据。本主题聚焦于“C# WinForm两个listBox之间的Item互相拖动”这一功能,这涉及到Windows窗体应用程序中的...
在Windows Presentation Foundation (WPF) 中,`ListBox` 和 `DataGrid` 是两种常见的数据展示控件,它们常用于显示和操作数据集。在处理大量数据时,分页功能是必不可少的,因为它可以提高应用程序的性能,同时提供...