标签:des style blog http io color os ar 使用
本文引用自:http://www.cnblogs.com/Reaver/p/4056770.html,原文博主:flyreaver
我在使用过程中遇到了easy ui1.4版本的一个问题,使用datagrid的时候当请求数据为0条时,会重新请求一次后台。上面这位兄弟帮我解决了这个问题,表示感谢。
为了防止原文丢失,作此备份:
easyui datagrid 1.4 当total为0时,请求两次url问题
框架问题:需要在easyui文件后加修补补丁
1 /** 2 * The Patch for jQuery EasyUI 1.4 3 */ 4 (function($){ 5 var plugin = $.fn._size; 6 $.fn._size = function(options, parent){ 7 if (typeof options != ‘string‘){ 8 return this.each(function(){ 9 parent = parent || $(this).parent(); 10 if (parent.length){ 11 plugin.call($(this), options, parent); 12 } 13 }); 14 } else if (options == ‘unfit‘){ 15 return this.each(function(){ 16 var p = $(this).parent(); 17 if (p.length){ 18 plugin.call($(this), options, parent); 19 } 20 }); 21 } else { 22 return plugin.call(this, options, parent); 23 } 24 }; 25 })(jQuery); 26 (function($){ 27 $.map([‘validatebox‘,‘textbox‘,‘filebox‘,‘searchbox‘, 28 ‘combo‘,‘combobox‘,‘combogrid‘,‘combotree‘, 29 ‘datebox‘,‘datetimebox‘,‘numberbox‘, 30 ‘spinner‘,‘numberspinner‘,‘timespinner‘,‘datetimespinner‘], function(plugin){ 31 if ($.fn[plugin]){ 32 if ($.fn[plugin].defaults.events){ 33 $.fn[plugin].defaults.events.click = function(e){ 34 if (!$(e.data.target).is(‘:focus‘)){ 35 $(e.data.target).trigger(‘focus‘); 36 } 37 }; 38 } 39 } 40 }); 41 $.fn.combogrid.defaults.height = 22; 42 $(function(){ 43 $(document).bind(‘mousewheel.combo‘, function(e){ 44 $(e.target).trigger(‘mousedown.combo‘); 45 }); 46 }); 47 })(jQuery); 48 (function($){ 49 $.extend($.fn.form.methods, { 50 clear: function(jq){ 51 return jq.each(function(){ 52 var target = this; 53 $(‘input,select,textarea‘, target).each(function(){ 54 var t = this.type, tag = this.tagName.toLowerCase(); 55 if (t == ‘text‘ || t == ‘hidden‘ || t == ‘password‘ || tag == ‘textarea‘){ 56 this.value = ‘‘; 57 } else if (t == ‘file‘){ 58 var file = $(this); 59 if (!file.hasClass(‘textbox-value‘)){ 60 var newfile = file.clone().val(‘‘); 61 newfile.insertAfter(file); 62 if (file.data(‘validatebox‘)){ 63 file.validatebox(‘destroy‘); 64 newfile.validatebox(); 65 } else { 66 file.remove(); 67 } 68 } 69 } else if (t == ‘checkbox‘ || t == ‘radio‘){ 70 this.checked = false; 71 } else if (tag == ‘select‘){ 72 this.selectedIndex = -1; 73 } 74 }); 75 var t = $(target); 76 var plugins = [‘textbox‘,‘combo‘,‘combobox‘,‘combotree‘,‘combogrid‘,‘slider‘]; 77 for(var i=0; i<plugins.length; i++){ 78 var plugin = plugins[i]; 79 var r = t.find(‘.‘+plugin+‘-f‘); 80 if (r.length && r[plugin]){ 81 r[plugin](‘clear‘); 82 } 83 } 84 $(target).form(‘validate‘); 85 }); 86 } 87 }); 88 })(jQuery); 89 (function($){ 90 function setSize(target, param){ 91 var opts = $.data(target, ‘linkbutton‘).options; 92 if (param){ 93 $.extend(opts, param); 94 } 95 if (opts.width || opts.height || opts.fit){ 96 var btn = $(target); 97 var parent = btn.parent(); 98 var isVisible = btn.is(‘:visible‘); 99 if (!isVisible){ 100 var spacer = $(‘<div style="display:none"></div>‘).insertBefore(target); 101 var style = { 102 position: btn.css(‘position‘), 103 display: btn.css(‘display‘), 104 left: btn.css(‘left‘) 105 }; 106 btn.appendTo(‘body‘); 107 btn.css({ 108 position:‘absolute‘, 109 display:‘inline-block‘, 110 left:-20000 111 }); 112 } 113 btn._size(opts, parent); 114 var left = btn.find(‘.l-btn-left‘); 115 left.css(‘margin-top‘, 0); 116 left.css(‘margin-top‘, parseInt((btn.height()-left.height())/2)+‘px‘); 117 if (!isVisible){ 118 btn.insertAfter(spacer); 119 btn.css(style); 120 spacer.remove(); 121 } 122 } 123 } 124 var plugin = $.fn.linkbutton; 125 $.fn.linkbutton = function(options, param){ 126 if (typeof options != ‘string‘){ 127 return this.each(function(){ 128 plugin.call($(this), options, param); 129 setSize(this); 130 }); 131 } else { 132 return plugin.call(this, options, param); 133 } 134 }; 135 $.fn.linkbutton.methods = plugin.methods; 136 $.fn.linkbutton.defaults = plugin.defaults; 137 $.fn.linkbutton.parseOptions = plugin.parseOptions; 138 $.extend($.fn.linkbutton.methods, { 139 resize: function(jq, param){ 140 return jq.each(function(){ 141 setSize(this, param); 142 }); 143 } 144 }); 145 })(jQuery); 146 (function($){ 147 var plugin = $.fn.dialog; 148 $.fn.dialog = function(options, param){ 149 var result = plugin.call(this, options, param); 150 if (typeof options != ‘string‘){ 151 this.each(function(){ 152 var opts = $(this).panel(‘options‘); 153 if (isNaN(parseInt(opts.height))){ 154 $(this).css(‘height‘, ‘‘); 155 } 156 var onResize = opts.onResize; 157 opts.onResize = function(w, h){ 158 onResize.call(this, w, h); 159 if (isNaN(parseInt(opts.height))){ 160 $(this).css(‘height‘, ‘‘); 161 } 162 var shadow = $.data(this, ‘window‘).shadow; 163 if (shadow){ 164 var cc = $(this).panel(‘panel‘); 165 shadow.css({ 166 width: cc._outerWidth(), 167 height: cc._outerHeight() 168 }); 169 } 170 }; 171 if (opts.closed){ 172 var pp = $(this).panel(‘panel‘); 173 pp.show(); 174 $(this).panel(‘resize‘); 175 pp.hide(); 176 } 177 }); 178 } 179 return result; 180 }; 181 $.fn.dialog.methods = plugin.methods; 182 $.fn.dialog.parseOptions = plugin.parseOptions; 183 $.fn.dialog.defaults = plugin.defaults; 184 })(jQuery); 185 (function($){ 186 function createTab(container, pp, options) { 187 var state = $.data(container, ‘tabs‘); 188 options = options || {}; 189 // create panel 190 pp.panel({ 191 border: false, 192 noheader: true, 193 closed: true, 194 doSize: false, 195 iconCls: (options.icon ? options.icon : undefined) 196 }); 197 var opts = pp.panel(‘options‘); 198 $.extend(opts, options, { 199 onLoad: function(){ 200 if (options.onLoad){ 201 options.onLoad.call(this, arguments); 202 } 203 state.options.onLoad.call(container, $(this)); 204 } 205 }); 206 var tabs = $(container).children(‘div.tabs-header‘).find(‘ul.tabs‘); 207 opts.tab = $(‘<li></li>‘).appendTo(tabs); // set the tab object in panel options 208 opts.tab.append( 209 ‘<a href="javascript:void(0)" class="tabs-inner">‘ + 210 ‘<span class="tabs-title"></span>‘ + 211 ‘<span class="tabs-icon"></span>‘ + 212 ‘</a>‘ 213 ); 214 $(container).tabs(‘update‘, { 215 tab: pp, 216 options: opts 217 }); 218 } 219 function addTab(container, options) { 220 var opts = $.data(container, ‘tabs‘).options; 221 var tabs = $.data(container, ‘tabs‘).tabs; 222 if (options.selected == undefined) options.selected = true; 223 var pp = $(‘<div></div>‘).appendTo($(container).children(‘div.tabs-panels‘)); 224 tabs.push(pp); 225 createTab(container, pp, options); 226 opts.onAdd.call(container, options.title, tabs.length-1); 227 $(container).tabs(‘resize‘); 228 if (options.selected){ 229 $(container).tabs(‘select‘, tabs.length-1); 230 } 231 } 232 $.extend($.fn.tabs.methods, { 233 add: function(jq, options){ 234 return jq.each(function(){ 235 addTab(this, options); 236 }); 237 } 238 }); 239 })(jQuery); 240 (function($){ 241 $.extend($.fn.menubutton.methods, { 242 enable: function(jq){ 243 return jq.each(function(){ 244 $(this).data(‘menubutton‘).options.disabled = false; 245 $(this).linkbutton(‘enable‘); 246 }); 247 } 248 }); 249 })(jQuery); 250 (function($){ 251 var onAfterRender = $.fn.datagrid.defaults.view.onAfterRender; 252 $.extend($.fn.datagrid.defaults.view, { 253 updateRow: function(target, rowIndex, row){ 254 var opts = $.data(target, ‘datagrid‘).options; 255 var rows = $(target).datagrid(‘getRows‘); 256 var oldStyle = _getRowStyle(rowIndex); 257 $.extend(rows[rowIndex], row); 258 var newStyle = _getRowStyle(rowIndex); 259 var oldClassValue = oldStyle.c; 260 var styleValue = newStyle.s; 261 var classValue = ‘datagrid-row ‘ + (rowIndex % 2 && opts.striped ? ‘datagrid-row-alt ‘ : ‘ ‘) + newStyle.c; 262 function _getRowStyle(rowIndex){ 263 var css = opts.rowStyler ? opts.rowStyler.call(target, rowIndex, rows[rowIndex]) : ‘‘; 264 var classValue = ‘‘; 265 var styleValue = ‘‘; 266 if (typeof css == ‘string‘){ 267 styleValue = css; 268 } else if (css){ 269 classValue = css[‘class‘] || ‘‘; 270 styleValue = css[‘style‘] || ‘‘; 271 } 272 return {c:classValue, s:styleValue}; 273 } 274 function _update(frozen){ 275 var fields = $(target).datagrid(‘getColumnFields‘, frozen); 276 var tr = opts.finder.getTr(target, rowIndex, ‘body‘, (frozen?1:2)); 277 var checked = tr.find(‘div.datagrid-cell-check input[type=checkbox]‘).is(‘:checked‘); 278 tr.html(this.renderRow.call(this, target, fields, frozen, rowIndex, rows[rowIndex])); 279 tr.attr(‘style‘, styleValue).removeClass(oldClassValue).addClass(classValue); 280 if (checked){ 281 tr.find(‘div.datagrid-cell-check input[type=checkbox]‘)._propAttr(‘checked‘, true); 282 } 283 } 284 _update.call(this, true); 285 _update.call(this, false); 286 $(target).datagrid(‘fixRowHeight‘, rowIndex); 287 }, 288 onAfterRender: function(target){ 289 onAfterRender.call($.fn.datagrid.defaults.view, target); 290 setTimeout(function(){ 291 var opts = $(target).datagrid(‘options‘); 292 opts.pageNumber = opts.pageNumber || 1; 293 },0); 294 } 295 }); 296 $.fn.datagrid.defaults.loader = function(param, success, error){ 297 var opts = $(this).datagrid(‘options‘); 298 if (!opts.url) return false; 299 if (opts.pagination && opts.pageNumber == 0){ 300 opts.pageNumber = 1; 301 param.page = 1; 302 } 303 if (param.page == 0){ 304 return false; 305 } 306 $.ajax({ 307 type: opts.method, 308 url: opts.url, 309 data: param, 310 dataType: ‘json‘, 311 success: function(data){ 312 success(data); 313 }, 314 error: function(){ 315 error.apply(this, arguments); 316 } 317 }); 318 }; 319 })(jQuery); 320 (function($){ 321 $.fn.numberbox.defaults.filter = function(e){ 322 var opts = $(this).numberbox(‘options‘); 323 var s = $(this).numberbox(‘getText‘); 324 if (e.which == 45){ //- 325 return (s.indexOf(‘-‘) == -1 ? true : false); 326 } 327 var c = String.fromCharCode(e.which); 328 if (c == opts.decimalSeparator){ 329 return (s.indexOf(c) == -1 ? true : false); 330 } else if (c == opts.groupSeparator){ 331 return true; 332 } else if ((e.which >= 48 && e.which <= 57 && e.ctrlKey == false && e.shiftKey == false) || e.which == 0 || e.which == 8) { 333 return true; 334 } else if (e.ctrlKey == true && (e.which == 99 || e.which == 118)) { 335 return true; 336 } else { 337 return false; 338 } 339 }; 340 })(jQuery);
标签:des style blog http io color os ar 使用
原文地址:http://www.cnblogs.com/zzgblog/p/flyreaver.html