`

zk listbox checkmark="true" 时脚本控制选中行时的bug

    博客分类:
  • ZK
阅读更多

zk listbox checkmark="true" 时脚本控制选中行时的bug:

 

一,证明bug事例

 

  listbox代码如下

 

 

 

 <script type="text/javascript" src="/js/linkFax.js">
	</script>

<button label="不选" w:onClick="linkFax.faxbox.selectZero();"/>

 

<listbox vflex="true" id="faxList" multiple="true" checkmark="true"
		oddRowSclass="non-odd">
		<listhead>
			<listheader width="25px"></listheader>
			<listheader width="30px"></listheader>
			<listheader label="收件人" width="200px"></listheader>
			<listheader width="25px"></listheader>
			<listheader label="主题"></listheader>
			<listheader label="时间" width="80px"></listheader>
		</listhead>
		<listitem height="30px">
			<listcell>
				<label visible="false" value="faxId:1:0:7:1:2:0"></label>
			</listcell>
			<listcell>
				<div>
					<image src="/images/email_unread.png" style="float:left;" />
					<image src="/images/level1_mini.png" style="float:right;" />
				</div>
			</listcell>
			<listcell>
				我
			</listcell>
			<listcell image="/images/marktrans.png" tooltiptext="标记为红色"></listcell>
			<listcell>
				234324324324
			</listcell>
			<listcell></listcell>
		</listitem>
</listitem>

 

 

   js脚本如下:

  1,  faxList函数功能:获得当前listbox Widget

 

  2,eachFaxList函数功能:遍历faxList,并回调设置的函数

 

  3,selectZero函数功能:取消所有选中的行

 

 

faxList : function() {
			if (this._faxList) {
				return this._faxList;
			}
			this._faxList = zk.Widget.$(jq("$faxList"));
			return this._faxList;
		},
		eachFaxList : function(callback) {
			var itemInter = this.faxList().itemIterator();
			while (itemInter.hasNext()) {
				var faxRecord = _linkFax.faxRecord.init(itemInter.next());
				callback.apply(this, [ faxRecord ]);
			}
		},
		selectZero : function() {
			this.eachFaxList(function(faxRecord) {
				if (faxRecord.isSelected()) {
					faxRecord.selectRecord(false);
				}
			});
		},
	// 暴露linkFax
	window.linkFax = _linkFax;

 二,证明bug步骤

 

不选按钮的功能为取消所有选中行,当点击按钮时,所有选中行取消了选中状态,此时把鼠标移动到listbox 标题中的checkbox上,当鼠标移到checkbox时,此checkbox自动设置为选中状态 ,因为所有行已经取消了选中状态,此时标题栏中的checkbox不应该选中。

 

在此情况下,该标题栏的checkbox告诉用户,listbox为全选状态,但实际不是!这样就误导了用户,另外,因为其为选中状态,所以用户如果像选中所有行,那么用户必须取消标题栏checkbox的选中,然后第二次点击,才可以选中所有行,

 

这样让用户多了一步操作!!

 

 

三,解决办法

 

还未发现如何解决,待解中。。。。。。。。。。。。。。。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1
1
分享到:
评论

相关推荐

    ListBox实现上下左右移动

    这里上下移动指的是在ListBox自身内切换选中项,而左右移动则涉及到在两个ListBox之间转移选中项。 1. **上下移动**: 要实现在ListBox内的上下移动,我们可以通过响应`KeyDown`事件来检查用户按下的是上箭头或下...

    mfc listbox选中右键弹出菜单

    创建ListBox时,可以设置控件样式,例如LBS_NOTIFY,这样当用户选择或取消选择项目时,会发送通知消息到父窗口。 接下来,实现右键弹出菜单的关键在于捕获鼠标事件。在MFC中,我们需要重载CWnd类的On_WM_...

    WPF listBox 漂亮的listBOX

    在标题中提到了“AutoScroll ListBox”,这是指当用户滚动到底部时,`ListBox`会自动加载更多数据,实现无限滚动的效果。这种功能通常通过结合虚拟化技术(如`VirtualizingStackPanel`)和数据分页来实现。以下是一...

    ListView、ListBox背景样式

    ### WPF/C#中ListView与ListBox的背景样式及选中行样式详解 #### 一、概述 在WPF(Windows Presentation Foundation)应用开发中,`ListView`和`ListBox`是两个非常常用的数据展示控件。它们能够以列表的形式展示...

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

    6. **样式和用户体验**:为了提供更好的用户体验,还可以调整`ListBox`的样式,如添加鼠标悬浮时的高亮效果,以及调整选中项的背景色等。 通过以上步骤,我们就可以实现在两个`ListBox`之间互相拖动Item的功能。这...

    ListBox控件用法

    ### ListBox控件用法详解:实现数据在两个ListBox间的多条移动 #### 一、概述 在.NET框架中,ListBox是一种常用的用户界面组件,用于显示一个项目列表供用户选择。ListBox支持多种选择模式,其中“Multiple”模式...

    WPF ListBox添加右键

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

    MFC 实现ListBox每行颜色的改变

    以上就是关于"MFC实现ListBox每行颜色的改变"的知识点,通过自定义DrawItem()函数,我们可以灵活地控制ListBox的显示样式,实现个性化界面设计。在开发过程中,一定要根据需求选择合适的控件风格,并充分利用MFC提供...

    ListBox-example.rar_ListBox_c#中listbox

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

    c# Listbox自动滚动

    当我们处理大量数据或者实时更新内容时,可能会遇到需要实现Listbox自动滚动的功能。这个功能通常用于确保最新的添加项始终可见,而无需用户手动滚动。下面将详细解释如何在C#中实现Listbox的自动滚动。 首先,我们...

    C#ListBox简单应用例子

    在C#编程中,ListBox控件是一个常用的UI元素,它允许用户从一组预定义的选项中选择一个或多个项。本篇文章将详细讲解如何在实际项目中应用ListBox,特别是涉及数据交换的操作。我们将通过一个名为"ListBoxTest"的...

    winform的ListBox拖拽排序实例

    listBox.AllowDrop = true; listBox.SelectionMode = SelectionMode.None; // 防止在拖拽时选中多个项 ``` 2. **添加拖动开始事件**: 我们需要监听ListBox的MouseDown事件,当用户按下鼠标左键时开始拖动操作...

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

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

    ListBox实例

    listBox1.ScrollAlwaysVisible = true; // 永远显示滚动条 ``` 对于事件处理,ListBox提供了多种事件,如SelectedIndexChanged、MouseDown等。例如,当用户选择项发生变化时执行某操作: ```csharp listBox1....

    c# 一个listbox的行字体颜色应用

    本示例探讨的是如何实现`ListBox`控件中每一行文本的颜色自定义,即“c# 一个listbox的行字体颜色应用”。这个技巧能够帮助开发者提升用户界面的视觉效果,例如通过不同颜色来区分不同类型的条目或突出重要的信息。 ...

    asp.net 两个listbox 互动 经典

    要从ListBox1向ListBox2转移选中的项,可以监听ListBox1的SelectedIndexChanged事件,并在事件处理程序中检查是否有项被选中。如果选中,使用Add方法将选中的项移动到ListBox2。同样,如果要从ListBox2移除项,可以...

    双击listbox某一行,使这行的某个内容出现在编辑框中。

    当用户双击ListBox中的某一行时,程序会触发这个事件,并可以执行相应的代码来处理这个事件。 1. **事件处理**:在C#、VB.NET或WinForms这类编程环境中,我们可以通过添加事件处理函数来响应ListBox的DoubleClick...

    listbox拖动至另一个listbox

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

    改变控件的背景颜色(LISTBOX)

    在编程领域,特别是涉及到用户界面(UI)设计时,改变控件的背景颜色是常见的需求。控件是用户与应用程序交互的基本元素,如按钮、文本框、列表框等。在这个场景中,我们关注的是“LISTBOX”,即列表框,一个可以...

    webfrom- ListBox 控件的使用.pdf

    ### WebForm ListBox 控件的使用 #### 一、概述 在 ASP.NET WebForms 开发中,`ListBox` 控件是一种非常实用的选择控件,它允许用户从多个选项中选择一个或多个项目。`ListBox` 控件类似于 HTML 中的 `...

Global site tag (gtag.js) - Google Analytics