1. 程式人生 > >MiniUI DataGrid 頁面分頁-前端分頁

MiniUI DataGrid 頁面分頁-前端分頁

作為一種前框開發指令碼,Mini 目前已經到了3.0.對於Mini的使用,各類介紹也有不少,官網http://www.miniui.com/demo/ 也有不少介紹。但是具體到一些應用,總是有些差別。

具體而言,Datagrid 分頁可分為兩種模式,一種是將資料取回到前端,在前端做分頁,另一種是 將引數傳遞到後臺,獲取了分頁結果後直接傳遞迴前端。

在使用miniui datagrid 控制元件之前,需要引入 兩個js 檔案,兩個css 檔案

js:

jquery-1.8.2.min.js  (jquery版本可以是最新,但是必須是 .mini)

miniui.js

css:

miniui.css  (預設情況下在miniui 外掛的 default 路徑下

icons.css

以asp mvc 作為後臺開發語言,具體做法

1,應用visio studio 2013 開發模板,生成 mvc  基本 專案模組;

2,Controllers 建立控制器 demoController 

    public class DemoController : Controller
    {
        //
        // GET: /Demo/

        public ActionResult Index()
        {
            return View();
        }

    }

3,通過控制器生成對應的檢視 index.cshtml

@{
    ViewBag.Title = "DataGrid 資料表格 前臺頁面分頁";
}
<html xmlns="

http://www.w3.org/1999/xhtml">
<head>
    <title>@ViewBag.Title</title>
    <h2>@ViewBag.Title</h2>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    <script src="~/Scripts/jquery-1.8.2.min.js"></script>
    <script src="~/Scripts/miniui.js"></script>
    <link href="~/Content/icons.css" rel="stylesheet" />
    <link href="~/Content/default/miniui.css" rel="stylesheet" />
</head>
<body>
    <div id="datagrid1" class="mini-datagrid" style="width:600px;height:280px;" idfield="id" pagesize="3" showpager="false">
        <div property="columns">
            <div type="indexcolumn">順序</div>
            <div field="price" width="120" headeralign="center" allowsort="true">價格</div>
            <div field="quantity" width="100" allowsort="true">數量</div>
        </div>
    </div>
    <script type="text/javascript">
        mini.parse();
        var grid = mini.get("datagrid1");
        // 分頁填充細節處理
        function fillData(pageIndex, pageSize, dataResult, grid) {

            var data = dataResult.data, totalCount = dataResult.total;
            var arr = [];
            var start = pageIndex * pageSize, end = start + pageSize;
            for (var i = start, l = end; i < l; i++) {
                var record = data[i];
                if (!record) continue;
                arr.push(record);
            }

            grid.setTotalCount(totalCount);
            grid.setPageIndex(pageIndex);
            grid.setPageSize(pageSize);
            grid.setData(arr);
        }
        // 監聽分頁前事件,阻止後自行設定當前資料和分頁資訊
        grid.on("beforeload", function (e) {
            e.cancel = true;
            var pageIndex = e.data.pageIndex, pageSize = e.data.pageSize;
            fillData(pageIndex, pageSize, dataResult, grid);
        });
        ////////////////////////////////////////////////////////////////////////
        // 獲取所有資料和總記錄數 { total: 100, data: [...] }
        var dataResult = null;
        $.ajax({
            url: '../data.txt',
            dataType: 'text',
            success: function (text) {
                dataResult = mini.decode(text);
                fillData(0, grid.getPageSize(), dataResult, grid);
            }
        });
    </script>
</body>
</html>

4, 編寫 data.txt檔案,將資料存放為json 格式

{
 total: 6,
 data: [
            {price:'100',quantity:'20'},
            {price:'200',quantity:'30'},
            {price:'300',quantity:'40'},
            {price:'400',quantity:'50'},
            {price:'500',quantity:'60'},
            {price:'600',quantity:'70'}
        ]
}

5,編譯執行後,出現以下效果頁面

至此,分頁效果完成。