需求:點擊左側的用戶,右側能夠顯示點擊的用戶,達到類似QQ群添加群成員的效果
思路設計:依靠easyui自帶的Combogrid實現,combogrid有onSelect方法,能夠在選中下拉框選項時候觸發動作,這時候配合
{
$("#xxx").combogrid("setValue", item); //需重新賦值(這個地方需要再重新賦值一次)
var gridData = $('#BaseCustomerIdsCom').combogrid('grid'); // 獲取數據表格對象
var rowData = gridData.datagrid('getSelected'); // 獲取選擇的行
}
能夠獲取到當前行的數據,把數據在賦值到右側便可,右側部分省略
遇到難點:
下拉框想讓他一直處於下拉狀態,有人會問為啥不用datagrid組件做,因為combogrid自帶搜索功能,使用這個功能用combogrid會好用一些,唯一要解決的問題就是不讓下拉框在點擊其他地方時候回收。
最開始的想法是,捕獲全局的點擊事件,在里面加入$('#xxx').combobox('showPanel');
實際不理想,因為在點擊其他地方的時候依舊會收一下,再顯示,效果不好看
//捕獲全局點擊事件
$(document).on('click', function (e) {
$('#BaseCustomerIdsCom').combobox('showPanel');
});
后面找了很久,一直找不到合適的解決辦法,查看官方文檔也沒有相應的內容
最后發現,其實combox的panel有個onClose的函數,在panel關閉要觸發時候,嘗試加入顯示panel會怎么樣?嘗試一下,難點解決
$('#xxx').combobox('panel').panel({
onClose: function () {
$('#xxx').combobox('showPanel');
}
})