設置Combobox默認選中項
$("#selectDock").combobox({ valueField: 'value', textField: 'label', panelHeight:"auto", data: [{ label: '靠上', value: 'top', selected:true //默認選中項 }, { label: '靠左', value: 'left' }], onSelect: function (rec) { //選中事件 } });
當文本框和combobox設置同樣的寬度的時候,代碼視圖展示如圖,都設置為148px寬度
預覽后的效果如下:
同樣寬度情況下,combobox設置的寬度 多加6px 才可以和文本框顯示一樣的長度
=========================================================
通過ajax后台獲取json數據 初始化combobox
$("#selectCategory").combobox({ url: "http://www.cnblogs.com/Ajax/sys/DomainCategory.ashx?Method=GetAllCategorys", valueField: "CategoryID", textField: "CategoryName"
value: '-1',//默認選中項 //panelHeight: "auto",//去掉該屬性,當內容過多的時候就會自動出現滾動條 });
設置combobox選中項:$('#selectCategory').combobox('setValue', "123");
禁制用戶輸入屬性:editable:false
$("#A_selectCategory").combobox({ url: "http://www.cnblogs.com/Ajax/sys/DomainCategory.ashx?Method=GetAllCategorys", valueField: "CategoryID", textField: "CategoryName", editable:false });
combobox默認選中項=====================================================
ajax獲取后台的JSON數據,在第一個節點的屬性上添加 selected:true 這個屬性 即可讓這個節點默認為選中的,但是這樣我們后台獲取的數據不大好處理,我一般都是一個datatable或者List 用json.net直接轉換為json了。
另外一種方式:參考網址:http://www.jeasyui.com/documentation/combobox.php
就是在combobox的加載完畢事件里獲取當前的combobox數據,設置第一個節點為選中項
$("#select_Dic").combobox({ url: "http://www.cnblogs.com/Ajax/sys/WebServiceBase.ashx?Method=GetRefItems", //獲取所有私有域 valueField: "Code", textField: "Name", panelHeight: "auto", editable: false, //不允許手動輸入 onLoadSuccess: function () { //數據加載完畢事件 var data = $('#select_Dic').combobox('getData'); if (data.length > 0) { $("#select_Dic").combobox('select', data[0].Code); } } });
另外一種較為簡單點的寫法
onLoadSuccess: function () { var data = $(this).combobox('getData'); if (data.length > 0) { $(this).combobox('select', data[0].Code); } }
==========================================================================================================
選中多個值
$("#GC025_WRYLB").combobox({ method: "post", data: [ {CODE: '31', NAME: '大氣環境污染源' }, { CODE: '32', NAME: '地表水體環境污染源' }, { CODE: '33', NAME: '地下水體環境污染源' }, { CODE: '34', NAME: '海洋環境污染源' }, { CODE: '35', NAME: '土壤環境污染源' }, { CODE: '36', NAME: '聲環境污染源' }, { CODE: '37', NAME: '振動環境污染源' }, { CODE: '38', NAME: '放射性環境污染源' }, { CODE: '41', NAME: '電磁環境污染源' }, { CODE: '49', NAME: '其他污染對象的污染源'}], valueField: "CODE", textField: "NAME", value: '32', multiple: true, //多選 editable: false, onLoadSuccess: function () { } });
獲取選中的多個值。將獲取到的值通過ajax傳入到后台的時候,取出來的數據例如是:"31,32,33,34" 需要對該字符串編碼 encodeURI() 后台通過 UrlDecode解碼即可,否則后台獲取到的是空值
var GC025_WRYLB = $('#GC025_WRYLB').combobox('getValues'); //污染源類別 這里注意是用的getValues
設置多個選中值
$('#GC025_WRYLB').combobox('setValues', ['32','33']);//后面的值是數組的形式
例如我從后台的數據庫里取出來了數據前台的賦值方法。數據內的數據的存儲如下圖,
31,32,33,34這樣存儲選中的多個值
前台的賦值方法是
var vArray = new Array();//創建一個數組 var str = row.GC025_WRYLB.toString().split(','); for (var i = 0; i < str.length; i++) { vArray.push(str[i]);//循環把值添加到數組里面 } $('#GC025_WRYLB').combobox('setValues', vArray);