easyui的combogri下拉框用在項目中很多,有時會出現很多問題,當然也好解決。
1.當向后台傳id值時,用戶輸入的與查詢出來的顯示值一樣,但combogrid為空?
情景:輸入‘李四’,和顯示值一樣但沒有選擇,combogrid為空
這樣表面是輸入了,但值不是01,而是張三。
//這里對於combogrid應該換一種方法取值
<input type="text" id="data"></input>
//js代碼
var rows = $("#data").combogrid("grid").datagrid("getSelected") || {};
var id = rows.id; if(!id){ $.messager.alert("提示","請選擇已有的人員!","info"); return; }
這樣就避免用戶輸入正確可是后台處理錯誤的尷尬。
2.代碼清除組件值,但沒有觸發事件,永遠傳輸上一次的值(不刷新頁面)
$("#Btn").linkbutton({
text:'返回', iconCls:'icon-back', onClick:function () { $("#data").combogrid("clear");//按鈕觸發,把下拉框清除組件值,沒有觸發下面的屬性。輸入其他值還是上次的值往后台傳 })
解決:
//在定義下拉框時觸發一個事件
var $data = $("#data").combogrid({
idField: '',
textField: 'name',
url: '/html/data.json',
method: 'get',
columns: [[
{field:'id',title:'id',width:80},
{field:'name',title:'姓名',width:80},
]],
onShowPanel:function () {//當下拉面板顯示的時候觸發。
if($data){//判斷是否初始化了
var k = $data.combogrid("getText");
$data.combogrid("grid").datagrid('load',{
q:k
})
}
}
});