最近接觸easyUI比較多,小知識點才做出來又遇到一樣的問題,腦子不好使,就記下來吧。
大概說明一下資料結構,AgentId對應Value,WebsiteName對應Text,至于從背景擷取資料原始的ajax都可以。首先定義一個空的集合,然後将自己要添加的那一列資料指派進去。
var array = {};
array.AgentId = 999;
array.WebSiteName = "請選擇代理商";
var newCombo;
function getAllAgentInfo() {
var strUrl = "GetAgentList";
$.when(Lsxx.Ajax.Syn(Lsxx.Ajax.Method.Get, strUrl, null, 8000))
.done(function (result) {
if (result != null && result.length > 0) {
result.unshift(array);
newCombo = result;
}
});
}
getAllAgentInfo();
這邊用Get方法請求到背景傳過來的資料,擷取到資料以後可以看到array是有内容的,這裡用到unshift方法将array添加到結果集的前面。
傳回出來新的集合如圖:
下一步就是渲染combobox:
$('#seleAgentId').combobox({
data: newCombo,
valueField: 'AgentId',
textField: 'WebSiteName',
panelHeight: 'auto',
editable: false,
required: true,
onLoadSuccess: function () { //加載完成後,設定選中第一項
$(this).combobox("select", 999);
}
});
對應的綁定value和text,并在加載事件中預設選中第一條,這裡需要注意的是渲染一定要寫在請求資料之後,不然起不到效果的。
效果圖如下:
END