easyui-combobox下拉框滚动条不显示&Java中的中文排序

注明:项目为J2EE项目


1、easyui-combobox下拉框滚动条不显示:

$("#*").find("input[name='*']").combobox({
																				url : '*',
																				valueField : '*',
																				textField : '*',
																				panelHeight : 'auto',
																				multiple: true ,
																				editable:false 	});
以上是代码,不必要的值都用*屏蔽掉了,可以无视。

关键在panelHeight属性。panelHeight设置了下拉框的高度。当下拉框中的数据很大时,其属性值为auto会造成没有滚动条,数据无法完全显示。

解决方法说将auto修改为一个固定的数值。但是这个数值也不能太小。

试过将其修改为10,结果下拉框只有很小的一点,连字都显示不完全,滚动条更是不存在。

随后将其更改为400达到了目的,滚动条出现了,且工作无误。

由于是项目代码,没有过多尝试,因此至于其值为100、200、300、500的时候会是什么样子还没有详细研究,准备抽空研究一下,有兴趣的朋友也可以玩玩。

至于原理,百度了之后发现有一个解释说,若panelHeight='auto' ,combobox的滚动条是根据初始数据进行显示的;而项目中数据都是从后台数据库读取出来的,初始数据是空的,所以不显示滚动条。


2、Java中的中文排序

其次需要对下拉框中显示的数据根据中文首字母进行排序。

百度了半天之后根据各种各样的博客、文档对程序进行了修改,大概程序如下:

public class A implements Comparable{
	private String name;
	private String id;
	//省略set和get方法
	public int compareTo(A arg0){
            return Collator.getInstance(Locale.CHINA).compare(this.getName(),arg0.getName());
      	}
}
这是bean中的代码。

在combobox调用的后台程序中,在获取到目标数据的List之后,执行下面这句代码就可以对List进行中文排序了:

Collections.sort(list);
排序结果即是根据中文首字母进行的。

但是这样做还是有一些BUG。

有一些Locale.CHINA中没有的汉字会排错位置,排到Z之后。

目前还在思考解决方案,准备参考pinyin4j的源码进行修改。



你可能感兴趣的:(记录)