easyui應用(四)--- easyui擴充套件
從easyui的demo中複製到下面的程式碼,可做擴充套件的參考:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Client Side Pagination in DataGrid - jQuery EasyUI Demo</title>
<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
<link rel="stylesheet" type="text/css" href="../demo.css">
<script type="text/javascript" src="../../jquery.min.js"></script>
<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
</head>
<body>
<h2>Client Side Pagination in DataGrid</h2>
<p>This sample shows how to implement client side pagination in DataGrid.</p>
<div style="margin:20px 0;"></div>
<table id="dg" title="Client Side Pagination" style="width:700px;height:300px" data-options="
rownumbers:true,
singleSelect:true,
autoRowHeight:false,
pagination:true,
pageSize:10">
<thead>
<tr>
<th field="inv" width="80">Inv No</th>
<th field="date" width="100">Date</th>
<th field="name" width="80">Name</th>
<th field="amount" width="80" align="right">Amount</th>
<th field="price" width="80" align="right">Price</th>
<th field="cost" width="100" align="right">Cost</th>
<th field="note" width="110">Note</th>
</tr>
</thead>
</table>
<script>
(function($){
function pagerFilter(data){
if ($.isArray(data)){ // is array
data = {
total: data.length,
rows: data
}
}
var target = this;
var dg = $(target);
var state = dg.data('datagrid');
var opts = dg.datagrid('options');
if (!state.allRows){
state.allRows = (data.rows);
}
if (!opts.remoteSort && opts.sortName){
var names = opts.sortName.split(',');
var orders = opts.sortOrder.split(',');
state.allRows.sort(function(r1,r2){
var r = 0;
for(var i=0; i<names.length; i++){
var sn = names[i];
var so = orders[i];
var col = $(target).datagrid('getColumnOption', sn);
var sortFunc = col.sorter || function(a,b){
return a==b ? 0 : (a>b?1:-1);
};
r = sortFunc(r1[sn], r2[sn]) * (so=='asc'?1:-1);
if (r != 0){
return r;
}
}
return r;
});
}
var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows = state.allRows.slice(start, end);
return data;
}
var loadDataMethod = $.fn.datagrid.methods.loadData;
var deleteRowMethod = $.fn.datagrid.methods.deleteRow;
$.extend($.fn.datagrid.methods, {
clientPaging: function(jq){
return jq.each(function(){
var dg = $(this);
var state = dg.data('datagrid');
var opts = state.options;
opts.loadFilter = pagerFilter;
var onBeforeLoad = opts.onBeforeLoad;
opts.onBeforeLoad = function(param){
state.allRows = null;
return onBeforeLoad.call(this, param);
}
var pager = dg.datagrid('getPager');
pager.pagination({
onSelectPage:function(pageNum, pageSize){
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',{
pageNumber:pageNum,
pageSize:pageSize
});
dg.datagrid('loadData',state.allRows);
}
});
$(this).datagrid('loadData', state.data);
if (opts.url){
$(this).datagrid('reload');
}
});
},
loadData: function(jq, data){
jq.each(function(){
$(this).data('datagrid').allRows = null;
});
return loadDataMethod.call($.fn.datagrid.methods, jq, data);
},
deleteRow: function(jq, index){
return jq.each(function(){
var row = $(this).datagrid('getRows')[index];
deleteRowMethod.call($.fn.datagrid.methods, $(this), index);
var state = $(this).data('datagrid');
if (state.options.loadFilter == pagerFilter){
for(var i=0; i<state.allRows.length; i++){
if (state.allRows[i] == row){
state.allRows.splice(i,1);
break;
}
}
$(this).datagrid('loadData', state.allRows);
}
});
},
getAllRows: function(jq){
return jq.data('datagrid').allRows;
}
})
})(jQuery);
function getData(){
var rows = [];
for(var i=1; i<=800; i++){
var amount = Math.floor(Math.random()*1000);
var price = Math.floor(Math.random()*1000);
rows.push({
inv: 'Inv No '+i,
date: $.fn.datebox.defaults.formatter(new Date()),
name: 'Name '+i,
amount: amount,
price: price,
cost: amount*price,
note: 'Note '+i
});
}
return rows;
}
$(function(){
$('#dg').datagrid({data:getData()}).datagrid('clientPaging');
});
</script>
</body>
</html>
相關文章
- jquery easyui 擴充套件驗證jQueryUI套件
- Datagrid擴充套件方法onClickCell{easyui-datagrid-擴充-支援單元格編輯}套件UI
- 擴充套件EasyUI在頁面中馬上顯示選中的本地圖片套件UI地圖
- Nmap 擴充套件(四)套件
- VSCode擴充套件應用VSCode套件
- 並查集擴充套件應用並查集套件
- EasyuiUI
- [譯]擴充套件 Node.js 應用套件Node.js
- chrome擴充套件應用開發快速科普Chrome套件
- iOS Extension擴充套件開啟宿主應用iOS套件
- 伸縮擴充套件Node.JS應用套件Node.js
- 使用Slice擴充套件伸縮OpenJPA 應用套件
- ?用Chrome擴充套件管理器, 管理你的擴充套件Chrome套件
- kotlin 擴充套件(擴充套件函式和擴充套件屬性)Kotlin套件函式
- jQuery EasyUI 教程jQueryUI
- Jquery easyui教程jQueryUI
- plain framework的實際應用和擴充套件AIFramework套件
- c# 高階應用 理解擴充套件方法C#套件
- 前端打包成桌面應用、以及chrome擴充套件前端Chrome套件
- Ruby Ruport實踐—Ruport::Formatter應用擴充套件ORM套件
- 構建可擴充套件的應用(一) (轉)套件
- 如何在AWS上自動擴充套件Web應用套件Web
- jQuery EasyUI API 中文文件 - 表單(form補充)jQueryUIAPIORM
- 【EasyUI學習-1】MyEclipse+easyui學習官方DemoUIEclipse
- 2.3.2.4 擴充套件 Data-Linked 應用程式物件套件物件
- 6個強大的AngularJS擴充套件應用AngularJS套件
- .Net開發筆記(十七) 應用程式擴充套件筆記套件
- 15 個 Angular.js 應用擴充套件指令解析AngularJS套件
- 利用”視窗小部件“擴充套件 Lotus Symphony 應用套件
- SQL_Postgresql-一些擴充套件和應用SQL套件
- WCF擴充套件:行為擴充套件Behavior Extension套件
- test easyui with nodejsUINodeJS
- PHP的SPL擴充套件庫(四)函式PHP套件函式
- 第四章 字串的擴充套件字串套件
- 擴充套件系統功能——裝飾模式(四)套件模式
- easyui-layout佈局高度自適應UI
- 【Kotlin】擴充套件屬性、擴充套件函式Kotlin套件函式
- 凱捷:擴充套件製造業AI應用報告套件AI