zoukankan      html  css  js  c++  java
  • 分页控件(easyUi自己封装过后的)

         这个版本是对easyui的封装,整体思路是easyui的界面风格,然后新建一个自定义控件,各个页面分别传递回调函数名,请求url,参数等,通过ajax请求成功后执行传递的回调函数即可。

        先看下效果

        1.首先新建控件 

          1.1html代码(注意引入easyui的js和css,jquery等):

         <div id="data_page_nav" class="easyui-pagination" data-options="total: 0, pageSize: 10, pageList: [10, 20, 50]" style="border:1px solid #ddd;  vertical-align: middle;" name="data_page_nav"></div>

          1.2js代码   

     1 <script type="text/javascript">
     2     var PaginationData = { method: "", url: "", RenderFunc: null };
     3     (function (o) {
     4         o.GetParams = function () {
     5             return $("#data_page_nav").data("params");
     6         }
     7         o.SetParams = function (para) {
     8             $("#data_page_nav").data("params", para);//页面搜索项的参数
     9         }
    10         o.BindTemplateList = function (d) {//绑定分页
    11             $("#data_page_nav").data("params", d.params);//传参
    12             o.RenderFunc = d.callbackfunc;//处理函数
    13             o.url = d.url;
    15             $('#data_page_nav').pagination({
    16                 total: d.total,
    17                 pageSize: d.pageSize,
    18                 onSelectPage: function (pageNumber, pageSize) {
    19                     $(this).pagination('loading');
    20                     o.GetTemplateList(pageNumber,pageSize);
    21                     $(this).pagination('loaded');
    22                 }
    23             });
    25         }
    27         o.GetTemplateList = function (pageIndex,pageSize) {//分页加载
    28             var d = ($("#data_page_nav").data("params"));
    29             d.PageIndex = pageIndex;
    30             d.pageSize = pageSize;
    31             $.ajax({
    32                 url: o.url,
    33                 data: d,
    34                 type: 'post',
    35                 dataType: 'json',
    36                 async: false,
    37                 success: function (v) {
    38                     if (v != null) {
    39                         $('#data_page_nav').pagination('refresh', {   
    40                             total: v.total
    41                         });
    42                         o.RenderFunc(v);
    43                     }
    44                 }
    45             });
    46         }
    47     })(PaginationData);
    48     $("#data_page_nav").data("paginationdata", PaginationData);
    49 </script>

        2.各个页面的使用

          2.1添加控件引用

    1 <%@ Register Src="~/UserControl/Pagination.ascx" TagPrefix="uc1" TagName="Pagination" %>

          2.2页面控件

     1 <uc1:Pagination runat="server" ID="Pagination" /> 

          2.3页面js

     1    <script type="text/javascript">
     2             var DialogGoodListTm={};
     3             (function(o){
     4                 o.RenderFunc=function(v){//绑定 回调函数
     5                     if (v!=null&&v.DATA!=null&&v.DATA.length>0) {
     6                         var contentArr=[];
     7                         for (var i = 0; i < v.DATA.length; i++) {
     8                             contentArr.push('<tr>');
     9                             contentArr.push('<td><input type="checkbox" name="chk_Good_id" class="chk_cell" value="'+v.DATA[i].ID+'" good-name="'+v.DATA[i].GoodName+'" goodimg="'+v.DATA[i].img+'"  goodbh="'+v.DATA[i].Code+'"/></td>');                    
    10                             contentArr.push('<td class="hotsell_name" >'+v.DATA[i].GoodName+'</td>');   
    11                             contentArr.push('<td class="hotsell_name" >'+v.DATA[i].Code+'</td>'); 
    12                             contentArr.push('<td class="hotsell_des" > '+v.DATA[i].BarCode+'</td>');
    13                             contentArr.push(' </tr>');
    14                         }
    15                         $("#list_goodtable").find("tbody").html(contentArr.join(''));
    16                     }else
    17                     {
    18                         $("#list_goodtable").find("tbody").html('<tr class="chk_line"><td colspan="4" class="ta_l">暂无数据</td>');
    19                     }
    20                 }57             })(DialogGoodListTm); 
    60             $(document).ready(function () {
    61                 var DialogGoodListPagination = $(".hotsells_good_wrap").find('[name="data_page_nav"]').data("paginationdata");
    62                 DialogGoodListPagination.BindTemplateList({  //传递参数
    63                     callbackfunc: DialogGoodListTm.RenderFunc, //回调函数
    64                     total: <%=this.Total%>,
    65                     pageSize: "10", //每页显示记录数,这里写死了 请注意
    66                     params: {PageIndex:0,action :"GetGoodPageList",GoodName:'',GoodBH:'',Uid:<%=id%>}, //参数
    67                     url:"/Good/GoodHandler.ashx"
    68                 });//初始化分页
    69                 DialogGoodListPagination.GetTemplateList(1);//绑定第一页  页面首次加载不要忘记
    70             });
    71    </script>

         总结:这个版本分页用户效果相对来说要好点,使用起来js代码稍微多点,但比起前面那个(拼接html)版本还是比较不错的,我个人比较推荐这个版本。

              最后因为时间比较久了,可能写的不是非常完善有些东西没有写清楚(有需要的请留言)比如:页面搜索项查询情况等,谢谢大家阅读!下一篇整理自定义控件版分页和这个版本不一样的思路哦

        

  • 相关阅读:
    浅析人脸检测之Haar分类器方法
    python调用网络摄像机
    jvm常用优化方案和方法
    jvm优化-垃圾收集器的类型
    jvm调优-垃圾回收算法
    JVM调优-java虚拟机内存模型及参数设置
    java NIO-Buffer
    java NIO-Channel
    java权限设置文件-java.policy
    java安全-安全管理器
  • 原文地址:https://www.cnblogs.com/sgfyfqh/p/3968806.html
Copyright © 2011-2022 走看看