listtable.js后
var listTable = new ListTable("list.jhtml", "listDiv");
function ListTable(url, listDiv) {
this.query = "query";
this.filter = new Object;
this.url = url.lastIndexOf("?") == -1 ? url + "?" : url + "&";
this.url += "ajax=true";
this.listDivName = listDiv;
}
ListTable.prototype.ajax = function(url) {
var tempTable = this;
url = url.lastIndexOf("?") == -1 ? url + "?" : url + "&";
url += "ajax=true";
$.getJSON(url, null, function(result) {
tempTable.listCallback(result, tempTable);
});
};
/**
* 切换排序方式
*/
ListTable.prototype.sort = function(sortName) {
if (this.filter.sortName == sortName) {
this.filter.sortOrder = this.filter.sortOrder == "desc" ? "asc"
: "desc";
} else {
this.filter.sortName = sortName;
this.filter.sortOrder = "asc";
}
this.loadList();
};
ListTable.prototype.isEmpty = function(val) {
switch (typeof (val)) {
case 'string':
return $.trim(val).length == 0 ? true : false;
break;
case 'number':
return val == 0;
break;
case 'object':
return val == null;
break;
case 'array':
return val.length == 0;
break;
default:
return true;
}
};
/**
* 翻页
*/
ListTable.prototype.gotoPage = function(page) {
if (page != null) {
this.filter['page'] = page;
}
this.loadList();
};
/**
* 载入列表
*/
ListTable.prototype.loadList = function() {
// var args = "act="+this.query+"" + this.compileFilter();
// alert(this.url+" --- "+$.param(this.MapFilter()));
var tempTable = this;
$.getJSON(this.url, this.MapFilter(), function(result) {
tempTable.listCallback(result, tempTable);
});
};
/**
* 页尺寸修改
*/
ListTable.prototype.changePageSize = function(pageSize) {
if (pageSize != null)
this.filter['pageSize'] = pageSize;
this.loadList();
};
/**
* 页码修改
*/
ListTable.prototype.changePage = function(e) {
// alert("1");
var evt = (typeof e == "undefined") ? window.event : e;
if (evt.keyCode == 13) {
this.filter['page'] = this.getPage(this.pageCount);
this.loadList();
return false;
}
};
ListTable.prototype.getPage = function(pageCount) {
var curPage = 1;
page = document.getElementById("curPage");
if (page) {
curPage = this.isInt(page.value) ? page.value : 1;
if (curPage > this.pageCount)
curPage = 1;
page.value = curPage;
}
return curPage;
};
ListTable.prototype.listCallback = function(result, tempTable) {
if (result.error > 0) {
alert(result.message);
} else {
try {
$("#"+tempTable.listDivName).append(result.content);
// 查询条件
if (typeof result.filter == "object") {
tempTable.filter = result.filter;
}
} catch (e) {
alert(e.message);
}
}
};
ListTable.prototype.MapFilter = function() {
var args = [];
for ( var i in this.filter) {
//判断是否为数组,如果是遍历 2011年12月10日23时16分12秒 hugang
if(jQuery.isArray(this.filter[i])) {
for(var val in this.filter[i]) {
if (typeof (this.filter[i][val]) != "function" && typeof (this.filter[i][val]) != "undefined") {
args.push({
name : i,
value : this.filter[i][val]
});
}
}
}
else {
if (typeof (this.filter[i]) != "function" && typeof (this.filter[i]) != "undefined") {
args.push({
name : i,
value : this.filter[i]
});
}
}
}
return args;
};
ListTable.prototype.callback = function(url, callback) {
$.getJSON(url, this.MapFilter(), callback);
};