直接贡献源码,我也没找到怎么给easyui贡献源码的地方,就放这里吧。
如要转载,请注明出处。
效果如图:
var xzcomboxid = 1;
$.extend($.fn.datagrid.defaults.editors, {
xzcombox: {
getPanelTop: function () {
var data = $.data(this, 'cache');
var whole = data.whole;
var myPanel = data.myPanel;
var top = whole.offset().top + whole._outerHeight();
if (top + myPanel._outerHeight() > $(window)._outerHeight() + $(document).scrollTop()) {
top = whole.offset().top - whole._outerHeight();
}
if (top < $(document).scrollTop()) {
top = whole.offset().top + whole._outerHeight();
}
return top;
},
panelMove: function () {
var data = $.data(this, 'cache');
var myPanel = data.myPanel;
var whole = data.whole;
var top = this.getPanelTop();
myPanel.panel("panel").css("z-index", $.fn.window.defaults.zIndex++);
myPanel.panel("move", {left: whole.offset().left, top: top});
},
buildData: function () {
var _this = this;
var cache = $.data(this, 'cache');
var setData = cache.setData;
var whole = cache.whole;
var arrow = cache.arrow;
var opts = $.data(whole, "combobox").options;
var myPanel = cache.myPanel;
$.ajax({
type: opts.method, url: opts.url, dataType: "json", success: function (data) {
$.data(whole, "combobox")['data'] = data;
var _872 = undefined;
var _871 = [""];
var dd = [];
var inputId = "_xzcombo_input_" + xzcomboxid++;
var inputWidth = myPanel.width() - arrow.width() - 5;
dd.push('<div class="combobox-item">' +
'<input id=' + inputId + ' type="text" class="datagrid-editable-input" style="width:' + inputWidth + 'px;">' +
'</div>');
for (var i = 0; i < data.length; i++) {
var row = data[i];
var v = row[opts.valueField] + "";
var s = row[opts.textField];
var g = row[opts.groupField];
if (g) {
if (_872 != g) {
_872 = g;
var grow = {value: g, domId: ("_easyui_combobox_" + _86c++)};
_870.groups.push(grow);
dd.push("<div id=\"" + grow.domId + "\" class=\"combobox-group\">");
dd.push(opts.groupFormatter ? opts.groupFormatter.call(_86e, g) : g);
dd.push("</div>");
}
} else {
_872 = undefined;
}
var cls = "combobox-item" + (setData[v] ? " combobox-item-selected" : "");
row.domId = "_easyui_combobox_xz_" + xzcomboxid++;
dd.push('