Easyui DataGrid 사용자 정의loader 어댑터

1540 단어 datagrid
function myLoader(param,success,error){
	var that = $(this);
	var opts = that.datagrid("options");
	if (!opts.url) {
		return false;
	}
	var cache = that.data().datagrid.cache;
	if (!cache) {
		$.ajax({
			type : opts.method,
			url : opts.url,
			data : param,
			dataType : "json",
			success : function (data) {
				that.data().datagrid['cache'] = data;
				success(bulidData(data));
			},
			error : function () {
				error.apply(this, arguments);
			}
		});
	} else {
		success(bulidData(cache));
	}
	
	function bulidData(data) {
		var temp = $.extend({},data);
		var tempRows = [];
		var start = (param.page - 1) * parseInt(param.rows);
		var end = start + parseInt(param.rows);
		var rows = data.rows;
		for (var i = start; i < end; i++) {
			if(rows[i]){
				tempRows.push(rows[i]);
			}else{
				break;
			}
		}
		temp.rows = tempRows;
		return temp;
	}
}

 
구체적인 사용: 데이터grid의loader 속성을 myLoader로 설정하면 됩니다.
백그라운드에서 데이터를 새로 고칠 것을 다시 요청하려면 새로 고침 방법을 사용하기 전에 $("#gridId") 를 실행하십시오.data().datagrid.cache = null; 이 문장은 현재 캐시를 지우는 데 작용합니다.
물론 네가 실현한 것은 전단 페이지다.그러니까 백스테이지에서 돌아온 건 이 결과가 모든 기록을 모은 거야.그리고 모레 페이지 파라미터를 처리하지 마십시오.백그라운드에서 반환되는 결과 형식은 다음과 같습니다. "total": 106, "rows": [{}, {}, {}...],게다가length의 길이는 total의 값과 같아야 합니다.

좋은 웹페이지 즐겨찾기