`

zk6中listbox设置了checkmark="true" multiple="true" 没用的问题

    博客分类:
  • zk
阅读更多

 

 大家用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,感谢”未来之路”的对这个问题感兴趣。
1
1
分享到:
评论

相关推荐

    WPF ListBox添加右键

    在Windows Presentation Foundation (WPF) 中,ListBox是一个常用的控件,用于展示一系列可选择的项。在许多应用程序中,为了提供更多的操作选项,我们可能需要为ListBox添加右键菜单。这个实例将指导你如何实现这一...

    ListBox控件用法

    - ListBox控件设置了`SelectionMode="Multiple"`属性,以便用户可以同时选择多个项目。 2. **后台逻辑**: - `btnAddRoutes_Click`方法实现了从ListBox1向ListBox2的数据移动。 - 遍历ListBox1的所有项目。 - ...

    WPF listBox 漂亮的listBOX

    在Windows Presentation Foundation (WPF) 中,`ListBox`是一个常用的数据展示控件,它允许用户从一系列项目中进行选择。本篇文章将深入探讨如何利用WPF的`ListBox`创建一个美观且功能丰富的用户界面。 首先,`...

    ListBox控件设置不同的背景色

    例如,在本例中,通过对`ListBox`中的每一项设置不同的背景色(如偶数项为一种颜色,奇数项为另一种颜色),可以让用户更容易地区分不同的项目,尤其是在项目数量较多的情况下更为明显。 #### 2. 实现方法 实现这...

    利用ListBox控件实现数据源字段的选择

    ListBox控件在Windows Forms或ASP.NET等开发环境中是常见的用户界面元素,用于展示一系列可选择的项目。在本文中,我们将深入探讨如何利用ListBox控件来实现数据源字段的选择,特别是针对C#编程语言。 首先,我们...

    ListBox中显示图片

    在WPF(Windows Presentation Foundation)应用开发中,`ListBox`是一个常用的数据展示控件,它允许用户通过列表形式查看和选择数据。在这个场景中,我们要讨论如何在`ListBox`中显示图片,这是一个常见的需求,特别...

    ListBox 横向滚动条 控件

    首先,要让ListBox显示横向滚动条,我们需要在控件属性中设置`HorizontalScrollbar`属性为`True`。在Windows Forms或WPF中,这通常可以在设计视图中直接修改,或者在代码中用如下方式设置: ```csharp // Windows ...

    listbox 实现图片浏览

    根据需求调整`ListBox`的样式,例如,设置`ItemHeight`以适应图像大小,或者设置`OwnerDraw`属性为`true`来自定义绘制行为。 ### 9. 兼容性与适应性 在不同的平台和设备上,可能需要处理不同尺寸的屏幕和分辨率。...

    Listbox设置水平滚动条范围

    ListBox设置水平滚动条,包含2个接口: 1.根据字符内容自动设置水平滚动条的长度, 2.手动设置水平滚动条的字符串长度。封装好了接口,可直接调用。

    listBox的使用方法

    1. **SelectionMode**:此属性用于设置`listBox`中项目的选中模式。它支持两种主要模式: - **Single**:表示用户只能选择一个项目。 - **Multiple**:允许用户通过按住Ctrl键来选择多个项目。 2. **Rows**:此...

    wpf实现拖拽效果 把一个listbox中的一条数据放到另外一个listbox中

    在本文中,我们将深入探讨如何在WPF(Windows Presentation Foundation)环境中实现拖放效果,特别是如何将一个ListBox中的数据项拖动到另一个ListBox中。WPF是.NET Framework的一部分,提供了丰富的用户界面功能,...

    ListBox实例

    ListBox是Windows Forms应用程序中常用的控件之一,常用于展示一系列可选择的项目。在C#编程中,ListBox提供了丰富的功能,允许用户通过交互来选择一个或多个条目。本实例将深入探讨如何使用C#创建并操作ListBox,...

    ListBox-example.rar_ListBox_c#中listbox

    ListBox是Windows Presentation Foundation (WPF) 和Windows Forms (WinForms) 中常见的控件,用于显示一系列可选择的项目。在C#编程环境中,ListBox通常被用作用户界面的一部分,允许用户从列表中进行单选或多选...

    listbox拖动至另一个listbox

    在Windows Forms(WinForm)应用开发中,Listbox控件是一种常见的用户界面元素,用于显示一系列可选择的项目。在某些交互设计中,允许用户通过拖放操作将Listbox中的条目从一个列表移动到另一个列表是提高用户体验的...

    MFC 实现ListBox每行颜色的改变

    在MFC(Microsoft Foundation Classes)框架中,ListBox控件是一种常用的数据展示组件,它允许用户通过单选或多选来操作列表中的项目。本教程将详细讲解如何实现ListBox控件每行颜色的改变,以增强界面的可读性和...

    c# Listbox自动滚动

    在C#编程中,Listbox控件是一种常用的数据展示组件,它允许程序员向用户显示一系列条目或选项。当我们处理大量数据或者实时更新内容时,可能会遇到需要实现Listbox自动滚动的功能。这个功能通常用于确保最新的添加项...

    C# WinForm两个listBox之间的Item互相拖动

    在C# WinForm应用开发中,用户界面交互是至关重要的,而`ListBox`控件是常用的元素之一,用于展示列表数据。本主题聚焦于“C# WinForm两个listBox之间的Item互相拖动”这一功能,这涉及到Windows窗体应用程序中的...

    Listbox中保存对象

    在Windows Forms应用程序中,`ListBox`控件是一个常用的组件,用于显示一系列可选择的项。在C#编程中,我们经常需要将自定义对象绑定到`ListBox`,以实现更复杂的业务逻辑。标题"Listbox中保存对象"指的是如何在`...

    wpf listbox,datagrid分页功能

    在Windows Presentation Foundation (WPF) 中,`ListBox` 和 `DataGrid` 是两种常见的数据展示控件,它们常用于显示和操作数据集。在处理大量数据时,分页功能是必不可少的,因为它可以提高应用程序的性能,同时提供...

    webfrom- ListBox 控件的使用.pdf

    在 ASP.NET WebForms 开发中,`ListBox` 控件是一种非常实用的选择控件,它允许用户从多个选项中选择一个或多个项目。`ListBox` 控件类似于 HTML 中的 `&lt;select multiple&gt;` 标签,但提供了更多的功能性和灵活性。本...

Global site tag (gtag.js) - Google Analytics