Easyui datagrid 1.4 requests twice, easyuidatagrid

Source: Internet
Author: User

Easyui datagrid 1.4 requests twice, easyuidatagrid

When the returned data is {rows: [], total: 0}, the datagrid requests twice.

Problems with the framework itself are hard to find out the cause, and google eventually finds a solution in the easyui community.


The attachment is the bug fixing code of version 1.4. You only need to add this js Code after the js is imported to the page (note that it should be placed behind easyui. min. js)


Attachments cannot be uploaded, depressing

/** * 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<plugins.length; i++){var plugin = plugins[i];var r = t.find('.'+plugin+'-f');if (r.length && r[plugin]){r[plugin]('clear');}}$(target).form('validate');});}});})(jQuery);(function($){function setSize(target, param){var opts = $.data(target, 'linkbutton').options;if (param){$.extend(opts, param);}if (opts.width || opts.height || opts.fit){var btn = $(target);var parent = btn.parent();var isVisible = btn.is(':visible');if (!isVisible){var spacer = $('<div style="display:none"></div>').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 panelpp.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 = $('<li></li>').appendTo(tabs);// set the tab object in panel optionsopts.tab.append('<a href="javascript:void(0)" class="tabs-inner">' +'<span class="tabs-title"></span>' +'<span class="tabs-icon"></span>' +'</a>');$(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 = $('<div></div>').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);



How to remove multiple rows in easyui datagrid

Function del (){
Var rows = $ ('# tt'). datagrid ("getSelections ");
Var copyRows = [];
For (var j = 0; j <rows. length; j ++ ){
CopyRows. push (rows [j]);
}
For (var I = 0; I <copyRows. length; I ++ ){
Var index = $ ('# tt'). datagrid ('getrowindex', copyRows [I]);
$ ('# Tt'). datagrid ('delterow', index );
}
}

Cause: In versions earlier than the easyui-1.3.3, The datatgrid Method for deleting row deleteRow will call opts after row deletion. view. deleteRow. call (opts. view, _ 4d2, _ 4d3); refresh the index of the row on the page, and the index will change; your original rows data will also change, copy the rows to another array;
 
Why can't jquery easyui datagrid reload be refreshed in time?

I also encountered a similar problem.
$ ('# Maintable'). datagrid ({url: "datagrid_data.php", queryParams: {pageNumber: pageNumber1, pageSize: pageSize1}, method: "post "});

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.