SNF快速開發平台MVC-瀑布式分頁組件

來源:互聯網
上載者:User

標籤:sys   參數表   事件   position   var   jpeg   esc   參數說明   頁面   

1.   瀑布式分頁

目前已經比較流行了,以往的這種點擊分頁已經不能滿足廣大網民的需求了。像百度圖片等等,網站都有滾動滾輪直接分頁的功能,這樣體驗也確實好了不少,所以我們也決定在我們的架構內進行整合此功能。一種針對於我們的表格控制項進行瀑布式分頁,另一種是針對於網頁自訂樣式瀑布式分頁。

1.1.      效果展示1.1.1.    表格瀑布式分頁

 

圖 3.1

 

1.1.2.    任意文本的瀑布式分頁

 

圖 3.2

1.2.      添加引用

    <script src="~/Content/js/core/common.scroll.js"></script>

1.3.      表格瀑布式分頁調用說明1.3.1.    定義每次載入多少頁

添加如下代碼,eachTimeShow.rows改變時,會影響每次載入多少頁

//定義每頁幾條,從第幾頁開始查詢,固定格式且一定叫這個名字 this.eachTimeShow

this.eachTimeShow = { page: 1, rows: 20 };//***rows的數值一定要在snf.scrollDatagrid的pageList中存在

this.queryForm.page = ko.observable(self.eachTimeShow.page);

this.queryForm.rows = ko.observable(self.eachTimeShow.rows);

此代碼寫在viewModel的裡邊即可

1.3.2.    定義自由排序組件

在datagrid對象的onLoadSuccess事件中添加如下代碼:

onLoadSuccess: function (d) {

//載入datagrid的瀑布式分頁,注意位置,一定在onLoadSuccess事件中

/*

參數:

{

    total: d.total, //需要載入的資料總條數

    grid: self.grid, //當前瀑布式分頁的datagrid在viewModel中綁定的對象

    gridId: "grid",//綁定的datagrid的id

    pageList: [10, 20, 30, 40, 50],//每次載入多少條的可選下拉

    eachTimeShow: self.eachTimeShow//每次載入的資料條數 與 初始載入第幾頁的對象

}

*/

snf.scrollDatagrid({

    total: d.total, //需要載入的資料總條數

    grid: self.grid, //當前瀑布式分頁的datagrid在viewModel中綁定的對象

    gridId: "grid",//綁定的datagrid的id

    pageList: [10, 20, 30, 40, 50],//每次載入多少條的可選下拉 預設[10, 20, 30, 40, 50]

    eachTimeShow: self.eachTimeShow//每次載入的資料條數 與 初始載入第幾頁的對象

});

}

1.3.3.    重寫表格的查詢事件

//查詢

this.searchClick = function () {

    var param = ko.toJS(self.queryForm);

    self.grid.queryParams($.extend(param, self.eachTimeShow));

};

可對錶格的瀑布式分頁進行條件查詢

1.3.4.    demo範例

程式路徑:

/DEMO/DemoSingleTableScroll/ DemoSingleTableScroll

可在程式中按照此路徑增加菜單查看

 

 

1.4.      任意文本的瀑布式分頁調用說明1.4.1.    定義需要瀑布式分頁的div對象

在需要瀑布式分頁的div標籤中添加屬性scroll-bind

 

                                         圖 3.3

1.4.2.    載入 瀑布式分頁 內容

每個包含scroll-bind標籤的div都需要定義一個如下對象,最後調用snf.scrollDivLoad(self)即可

formatter事件:傳回值表示格式化後,每一格的內容。包含兩個參數,row:當前行資料,row資料中包含rowIndex為當前索引;total:總行數

onAfterFormatter事件:formatter每次載入完成後觸發,可用於綁定事件、自訂縮放等功能,包含一個參數row

onLoadSuccess事件:全部載入完成後觸發,可包含兩個參數row,total

 

//對應div的scroll-bind標籤,注意一定要是div

//參數說明

//{

    //w:左右邊距 預設0

    //h:上下邊距 預設0

    //rows:每次載入多少條資料,預設20

    ///**/url:資料查詢地址,必填

    //queryParams:綁定查詢條件 預設ko.observable(self.queryForm)

    //formatter:每行資料的格式化方式,增加一項rowIndex表示當前的行號

//}

this.DemoSingleTable = {

    w: 4,

    h: 100,

    rows: 5,//每次載入多少行

    pageList:[5, 10, 20, 30, 50],//每次載入多少條,可選擇

    url: "/api/DEMO/DemoSingleTableScroll/GetDemoSingleTableScrollBar",//資料載入地址

    queryParams: ko.observable(self.queryForm),//查詢條件

    formatter :function (row){//每行資料格式化方法

        var str = "<div style=‘width:100%;height:50px;margin-left:200px‘>";

        str += "<span style=‘position:relative;margin: 0 auto;top: -50%;‘>序號:" + (row.rowIndex + 1) + " 名稱:"+row.Name+",編號條碼:</span><img src=‘data:image/jpeg;base64," + row.CodeBar + "‘/>";

        str += "</div>";

        return str;

    },

    onAfterFormatter: function (row) {

       

    },

    onLoadSuccess: function (rows, total){

       

    }

};

 

//載入當前頁面全部具有scroll-bind屬性的div標籤

snf.scrollDivLoad(self);

 

snf.scrollDivLoad事件一定要在scroll-bind對象定義之後在調用,本例子中,即應當在this.DemoSingleTable定義之後再調用此方法

1.4.3.    定義查詢事件

//查詢

this.searchClick = function () {

    snf.scrollModelSearch("DemoSingleTable");//參數表示3.4.1中綁定的scroll-bind屬性,本例子中即為DemoSingleTable

 

};

可以對瀑布式分頁的資料來源進行條件查詢

1.4.4.    demo範例

程式路徑:

/DEMO/DemoSingleTableScroll/ DemoSingleTableScrollNoGird(比較簡略,通俗易懂)

/Sys/BusinessCard/BusinessCardAdmin(內容較全,包含所有事件和其他很多功能的整合)

可在程式中按照此路徑增加菜單查看

 

SNF快速開發平台MVC-瀑布式分頁組件

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.