学习基于jQuery的FlexiGrid工具 (六)

2014-11-24 01:40:17 · 作者: · 浏览: 2
eClass('sasc');

$('div', th).addClass('s' + p.sortorder);

p.sortname = $(th).attr('abbr');

if (p.onChangeSort) {

p.onChangeSort(p.sortname, p.sortorder);

} else {

this.populate();

}

},

buildpager: function () { //rebuild pager based on new properties

$('.pcontrol input', this.pDiv).val(p.page);

$('.pcontrol span', this.pDiv).html(p.pages);

var r1 = (p.page - 1) * p.rp + 1;

var r2 = r1 + p.rp - 1;

if (p.total < r2) {

r2 = p.total;

}

var stat = p.pagestat;

stat = stat.replace(/{from}/, r1);

stat = stat.replace(/{to}/, r2);

stat = stat.replace(/{total}/, p.total);

$('.pPageStat', this.pDiv).html(stat);

},

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);

}

if ($.browser.opera) {

$(t).css('visibility', 'hidden');

}

if (!p.newp) {

p.newp = 1;

}

if (p.page > p.pages) {

p.page = p.pages;

}

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: p.query

}, {

name: 'qtype',

value: p.qtype

}];

if (p.params) {

for (var pi = 0; pi < p.params.length; pi++) {

param[param.length] = p.params[pi];

}

}

$.ajax({

type: p.method,

url: p.url,

data: param,

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) {}

}

});

},

doSearch: function () {

p.query = $('input[name=q]', g.sDiv).val();

p.qtype = $('select[name=qtype]', g.sDiv).val();

p.newp = 1;

this.populate();

},

changePage: function (ctype) { //change page

if (this.loading) {

return true;

}

switch (ctype) {

case 'first':

p.newp = 1;

break;

case 'prev':

if (p.page > 1) {

p.newp = parseInt(p.page) - 1;

}

break;

case 'next':

if (p.page < p.pages) {

p.newp = parseInt(p.page) + 1;

}

break;

case 'last':

p.newp = p.pages;

break;

case 'input':

var nv = parseInt($('.pcontrol input', this.pDiv).val());

if (isNaN(nv)) {

nv = 1;

}

if (nv < 1) {

nv = 1;

} else if (nv > p.pages) {

nv = p.pages;

}

$('.pcontrol input', this.pDiv).val(nv);

p.newp = nv;

break;

}

if (p.newp == p.page) {

return false;

}

if (p.onChangePage) {

p.onChangePage(p.newp);

} else {

this.populate();

}

},

addCellProp: function () {

$('tbody tr td', g.bDiv).each(function () {

var tdDiv = document.createElement('div');

var n = $('td', $(this).parent()).index(this);

var pth = $('th:eq(' + n + ')', g.hDiv).get(0);