easyui-combobox下拉框滾動條不顯示&Java中的中文排序
阿新 • • 發佈:2019-01-25
註明:專案為J2EE專案
1、easyui-combobox下拉框滾動條不顯示:
以上是程式碼,不必要的值都用*遮蔽掉了,可以無視。$("#*").find("input[name='*']").combobox({ url : '*', valueField : '*', textField : '*', panelHeight : 'auto', multiple: true , editable:false <span style="font-family: Arial, Helvetica, sans-serif;"> </span><span style="font-family: Arial, Helvetica, sans-serif;">});</span>
關鍵在panelHeight屬性。panelHeight設定了下拉框的高度。當下拉框中的資料很大時,其屬性值為auto會造成沒有滾動條,資料無法完全顯示。
解決方法說將auto修改為一個固定的數值。但是這個數值也不能太小。
試過將其修改為10,結果下拉框只有很小的一點,連字都顯示不完全,滾動條更是不存在。
隨後將其更改為400達到了目的,滾動條出現了,且工作無誤。
由於是專案程式碼,沒有過多嘗試,因此至於其值為100、200、300、500的時候會是什麼樣子還沒有詳細研究,準備抽空研究一下,有興趣的朋友也可以玩玩。
至於原理,百度了之後發現有一個解釋說,若panelHeight='auto' ,combobox的滾動條是根據初始資料進行顯示的;而專案中資料都是從後臺資料庫讀取出來的,初始資料是空的,所以不顯示滾動條。
2、Java中的中文排序
其次需要對下拉框中顯示的資料根據中文首字母進行排序。
百度了半天之後根據各種各樣的部落格、文件對程式進行了修改,大概程式如下:
這是bean中的程式碼。public class A implements Comparable<A>{ <span style="white-space:pre"> </span>private String name; <span style="white-space:pre"> </span>private String id; <span style="white-space:pre"> </span>//省略set和get方法 <span style="white-space:pre"> </span>public int compareTo(A arg0){ return Collator.getInstance(Locale.CHINA).compare(this.getName(),arg0.getName()); <span style="white-space:pre"> </span>} }
在combobox呼叫的後臺程式中,在獲取到目標資料的List之後,執行下面這句程式碼就可以對List進行中文排序了:
Collections.sort(list);
排序結果即是根據中文首字母進行的。
但是這樣做還是有一些BUG。
有一些Locale.CHINA中沒有的漢字會排錯位置,排到Z之後。
目前還在思考解決方案,準備參考pinyin4j的原始碼進行修改。