jQuery表格插件flexigrid扩展
时间:2011-03-23 来源:nixil
populate: function () { //get latest data if (this.loading) return true; if (p.onSubmit) { var gh = p.onSubmit(); if (!gh) return false; } this.loading = true; if (!p.url) return false; $('.pPageStat',this.pDiv).html(p.procmsg); $('.pReload',this.pDiv).addClass('loading'); $(g.block).css({top:g.bDiv.offsetTop}); if (p.hideOnSubmit) $(this.gDiv).prepend(g.block); //$(t).hide(); if ($.browser.opera) $(t).css('visibility','hidden'); if (!p.newp) p.newp = 1; if (p.page>p.pages) p.page = p.pages; //var param = {page:p.newp, rp: p.rp, sortname: p.sortname, sortorder: p.sortorder, query: p.query, qtype: p.qtype}; var param = [ { name : 'page', value : p.newp } ,{ name : 'rp', value : p.rp } ,{ name : 'sortname', value : p.sortname} ,{ name : 'sortorder', value : p.sortorder } ,{ name : 'query', value : encodeURI(p.query)} ,{ name : 'qtype', value : p.qtype} ,{ name : 'time', value : new Date().getTime()} ]; if (p.params){ for (var pi = 0; pi < p.params.length; pi++) param[param.length] = p.params[pi]; } //Modify by alex to support custom function to handle data. if(typeof(p.url) === 'string'){ $.ajax({ type: p.method, url: p.url, data: param, cache:false, dataType: p.dataType, success: function(data){g.addData(data);}, error: function(XMLHttpRequest, textStatus, errorThrown) { try { if (p.onError) p.onError(XMLHttpRequest, textStatus, errorThrown); } catch (e) {} } }); }else if(typeof(p.url) === 'function'){ p.url.apply(this,[param]); } },
通过这样的修改,使得flexigrid的url属性可以支持传入function对象,并对其进行回调。通常的应用是当Server端返回的数据不满足flexigrid期望的格式时,可以自己写一个function来获取数据并将数据加工成flexigrid可识别的格式,然后就可以显示出来了。
这种修改方式的话是可以保证刷新,查询,分页等功能不被破坏的。
相关阅读 更多 +