easyui datagrid 1.4バージョン要求2回

10827 ワード

返されるデータが{rows:[],total:0}の場合、datagridは2回要求します.
このようなフレームワーク自体の問題は、問題自体が原因を見つけることが難しく、最終的にはgoogleであり、easyuiコミュニティで解決方法を見つけることができます.
添付ファイルは1.4バージョンのバグ修正コードで、これはページインポートjsの後にこのjsを加えるだけで十分です(easyui.min.jsの後ろに置くことに注意してください)
添付ファイルをアップロードすることができなくて、気がふさぎます
/**
 * The Patch for jQuery EasyUI 1.4
 */
(function($){
	var plugin = $.fn._size;
	$.fn._size = function(options, parent){
		if (typeof options != 'string'){
			return this.each(function(){
				parent = parent || $(this).parent();
				if (parent.length){
					plugin.call($(this), options, parent);
				}
			});
		} else if (options == 'unfit'){
			return this.each(function(){
				var p = $(this).parent();
				if (p.length){
					plugin.call($(this), options, parent);
				}
			});
		} else {
			return plugin.call(this, options, parent);
		}
	};
})(jQuery);

(function($){
	$.map(['validatebox','textbox','filebox','searchbox',
			'combo','combobox','combogrid','combotree',
			'datebox','datetimebox','numberbox',
			'spinner','numberspinner','timespinner','datetimespinner'], function(plugin){
		if ($.fn[plugin]){
			if ($.fn[plugin].defaults.events){
				$.fn[plugin].defaults.events.click = function(e){
					if (!$(e.data.target).is(':focus')){
						$(e.data.target).trigger('focus');
					}
				};
			}
		}
	});
	$.fn.combogrid.defaults.height = 22;
	$(function(){
		$(document).bind('mousewheel.combo', function(e){
			$(e.target).trigger('mousedown.combo');
		});
	});
})(jQuery);

(function($){
	$.extend($.fn.form.methods, {
		clear: function(jq){
			return jq.each(function(){
				var target = this;
				$('input,select,textarea', target).each(function(){
					var t = this.type, tag = this.tagName.toLowerCase();
					if (t == 'text' || t == 'hidden' || t == 'password' || tag == 'textarea'){
						this.value = '';
					} else if (t == 'file'){
						var file = $(this);
						if (!file.hasClass('textbox-value')){
							var newfile = file.clone().val('');
							newfile.insertAfter(file);
							if (file.data('validatebox')){
								file.validatebox('destroy');
								newfile.validatebox();
							} else {
								file.remove();
							}
						}
					} else if (t == 'checkbox' || t == 'radio'){
						this.checked = false;
					} else if (tag == 'select'){
						this.selectedIndex = -1;
					}
				});
				
				var t = $(target);
				var plugins = ['textbox','combo','combobox','combotree','combogrid','slider'];
				for(var i=0; i
').insertBefore(target);
var style = {
position: btn.css('position'),
display: btn.css('display'),
left: btn.css('left')
};
btn.appendTo('body');
btn.css({
position:'absolute',
display:'inline-block',
left:-20000
});
}
btn._size(opts, parent);
var left = btn.find('.l-btn-left');
left.css('margin-top', 0);
left.css('margin-top', parseInt((btn.height()-left.height())/2)+'px');
if (!isVisible){
btn.insertAfter(spacer);
btn.css(style);
spacer.remove();
}
}
}
var plugin = $.fn.linkbutton;
$.fn.linkbutton = function(options, param){
if (typeof options != 'string'){
return this.each(function(){
plugin.call($(this), options, param);
setSize(this);
});
} else {
return plugin.call(this, options, param);
}
};
$.fn.linkbutton.methods = plugin.methods;
$.fn.linkbutton.defaults = plugin.defaults;
$.fn.linkbutton.parseOptions = plugin.parseOptions;
$.extend($.fn.linkbutton.methods, {
resize: function(jq, param){
return jq.each(function(){
setSize(this, param);
});
}
});
})(jQuery);
(function($){
var plugin = $.fn.dialog;
$.fn.dialog = function(options, param){
var result = plugin.call(this, options, param);
if (typeof options != 'string'){
this.each(function(){
var opts = $(this).panel('options');
if (isNaN(parseInt(opts.height))){
$(this).css('height', '');
}
var onResize = opts.onResize;
opts.onResize = function(w, h){
onResize.call(this, w, h);
if (isNaN(parseInt(opts.height))){
$(this).css('height', '');
}
var shadow = $.data(this, 'window').shadow;
if (shadow){
var cc = $(this).panel('panel');
shadow.css({
width: cc._outerWidth(),
height: cc._outerHeight()
});
}
};
if (opts.closed){
var pp = $(this).panel('panel');
pp.show();
$(this).panel('resize');
pp.hide();
}
});
}
return result;
};
$.fn.dialog.methods = plugin.methods;
$.fn.dialog.parseOptions = plugin.parseOptions;
$.fn.dialog.defaults = plugin.defaults;
})(jQuery);
(function($){
function createTab(container, pp, options) {
var state = $.data(container, 'tabs');
options = options || {};
//create panel
pp.panel({
border: false,
noheader: true,
closed: true,
doSize: false,
iconCls: (options.icon ? options.icon : undefined)
});
var opts = pp.panel('options');
$.extend(opts, options, {
onLoad: function(){
if (options.onLoad){
options.onLoad.call(this, arguments);
}
state.options.onLoad.call(container, $(this));
}
});
var tabs = $(container).children('div.tabs-header').find('ul.tabs');
opts.tab = $('
  • ').appendTo(tabs); //set the tab object in panel options
    opts.tab.append(
    ' ' + '' + '' + ' '
    );
    $(container).tabs('update', {
    tab: pp,
    options: opts
    });
    }
    function addTab(container, options) {
    var opts = $.data(container, 'tabs').options;
    var tabs = $.data(container, 'tabs').tabs;
    if (options.selected == undefined) options.selected = true;
    var pp = $('').appendTo($(container).children('div.tabs-panels'));
    tabs.push(pp);
    createTab(container, pp, options);
    opts.onAdd.call(container, options.title, tabs.length-1);
    $(container).tabs('resize');
    if (options.selected){
    $(container).tabs('select', tabs.length-1);
    }
    }
    $.extend($.fn.tabs.methods, {
    add: function(jq, options){
    return jq.each(function(){
    addTab(this, options);
    });
    }
    });
    })(jQuery);
    (function($){
    $.extend($.fn.menubutton.methods, {
    enable: function(jq){
    return jq.each(function(){
    $(this).data('menubutton').options.disabled = false;
    $(this).linkbutton('enable');
    });
    }
    });
    })(jQuery);
    (function($){
    var onAfterRender = $.fn.datagrid.defaults.view.onAfterRender;
    $.extend($.fn.datagrid.defaults.view, {
    updateRow: function(target, rowIndex, row){
    var opts = $.data(target, 'datagrid').options;
    var rows = $(target).datagrid('getRows');
    var oldStyle = _getRowStyle(rowIndex);
    $.extend(rows[rowIndex], row);
    var newStyle = _getRowStyle(rowIndex);
    var oldClassValue = oldStyle.c;
    var styleValue = newStyle.s;
    var classValue = 'datagrid-row ' + (rowIndex % 2 && opts.striped ? 'datagrid-row-alt ' : ' ') + newStyle.c;
    function _getRowStyle(rowIndex){
    var css = opts.rowStyler ? opts.rowStyler.call(target, rowIndex, rows[rowIndex]) : '';
    var classValue = '';
    var styleValue = '';
    if (typeof css == 'string'){
    styleValue = css;
    } else if (css){
    classValue = css['class'] || '';
    styleValue = css['style'] || '';
    }
    return {c:classValue, s:styleValue};
    }
    function _update(frozen){
    var fields = $(target).datagrid('getColumnFields', frozen);
    var tr = opts.finder.getTr(target, rowIndex, 'body', (frozen?1:2));
    var checked = tr.find('div.datagrid-cell-check input[type=checkbox]').is(':checked');
    tr.html(this.renderRow.call(this, target, fields, frozen, rowIndex, rows[rowIndex]));
    tr.attr('style', styleValue).removeClass(oldClassValue).addClass(classValue);
    if (checked){
    tr.find('div.datagrid-cell-check input[type=checkbox]')._propAttr('checked', true);
    }
    }
    _update.call(this, true);
    _update.call(this, false);
    $(target).datagrid('fixRowHeight', rowIndex);
    },
    onAfterRender: function(target){
    onAfterRender.call($.fn.datagrid.defaults.view, target);
    setTimeout(function(){
    var opts = $(target).datagrid('options');
    opts.pageNumber = opts.pageNumber || 1;
    },0);
    }
    });
    $.fn.datagrid.defaults.loader = function(param, success, error){
    var opts = $(this).datagrid('options');
    if (!opts.url) return false;
    if (opts.pagination && opts.pageNumber == 0){
    opts.pageNumber = 1;
    param.page = 1;
    }
    if (param.page == 0){
    return false;
    }
    $.ajax({
    type: opts.method,
    url: opts.url,
    data: param,
    dataType: 'json',
    success: function(data){
    success(data);
    },
    error: function(){
    error.apply(this, arguments);
    }
    });
    };
    })(jQuery);
    (function($){
    $.fn.numberbox.defaults.filter = function(e){
    var opts = $(this).numberbox('options');
    var s = $(this).numberbox('getText');
    if (e.which == 45){ //-
    return (s.indexOf('-') == -1 ? true : false);
    }
    var c = String.fromCharCode(e.which);
    if (c == opts.decimalSeparator){
    return (s.indexOf(c) == -1 ? true : false);
    } else if (c == opts.groupSeparator){
    return true;
    } else if ((e.which >= 48 && e.which <= 57 && e.ctrlKey == false && e.shiftKey == false) || e.which == 0 || e.which == 8) {
    return true;
    } else if (e.ctrlKey == true && (e.which == 99 || e.which == 118)) {
    return true;
    } else {
    return false;
    }
    };
    })(jQuery);