欢迎您光临深圳塔灯网络科技有限公司!
电话图标 余先生:13699882642

pageadmin模板中如何实现分页

发表日期:2019-04 文章编辑:小灯 浏览次数:2250

在信息页中调用分页数据时,信息后面一般都需要分页控制按钮面板,分页面板是一个稍显繁琐的功能,下面直接上代码:

@functions{
    //默认分页函数
    private string Pagebreak(int page, string urlPrefix, string urlParams = "")
    {
        string rv = "";
        if (page > 1)
        {
            rv = urlPrefix + page + "/";
        }
        else
        {
            rv = urlPrefix;
        }
        rv += urlParams;
        return rv;
    }
    //获取url参数方法
    private string GetUrlParams()
    {
        string rv = "";
        System.Collections.Specialized.NameValueCollection queryStrings = Request.QueryString;
        int count = queryStrings.Count;
        if (count > 0)
        {
            rv = "?";
        }
        foreach (string key in queryStrings)
        {
            if (rv.IndexOf("=") > 0)
            {
                rv += "&";
            }
            rv += key + "=" + HttpUtility.UrlEncode(queryStrings[key]);
        }
        return rv;
    }
}
@{
    PageInfo pageInfo = (PageInfo)Model;
    int pageCount = pageInfo.PageCount;
    int pageSize = pageInfo.PageSize;
    int recordCount = pageInfo.RecordCount;
    int currentPage = pageInfo.CurrentPage;
    int m = 2; //左右两边显示页码数
    string urlParams = GetUrlParams();
    string urlPrefix = Html.ColumnUrl();//获取当前栏目url,如果是自定义文件,请自行修改为路径。
}
    <div class="text-center">
        <ul class="pagination">
            @{
                if (currentPage > 1)
                {
                    <li>
                        <a href="@Pagebreak(currentPage-1,urlPrefix,urlParams)">&laquo;</a>
                    </li>
                }
                else
                {
                    <li class="disabled">
                        <a>&laquo;</a>
                    </li>
                }
                int startPage = currentPage - m;
                int lastPage = currentPage + m;
                int cha = 0;
                if (lastPage > pageCount)
                {
                    cha = lastPage - pageCount;
                    startPage = startPage - cha;
                    if (startPage < 1)
                    {
                        startPage = 1;
                    }
                    lastPage = pageCount;
                }
                else if (startPage < 1)
                {
                    cha = 1 - startPage;
                    startPage = startPage + cha;
                    lastPage = lastPage + cha;
                    if (lastPage > pageCount)
                    {
                        lastPage = pageCount;
                    }
                }
                if (startPage > 1)
                {
                    <li><a href="@Pagebreak(1,urlPrefix,urlParams)">1 ...</a></li>
                }
                for (int i = startPage; i <= lastPage; i++)
                {
                    <li@(currentPage==i?" class=active":"")><a href="@Pagebreak(i,urlPrefix,urlParams)">@i</a></li>
                }
                if (lastPage < pageCount)
                {
                    <li><a href="@Pagebreak(pageCount,urlPrefix,urlParams)">... @pageCount</a></li>
                }
                if (currentPage < pageCount)
                {
                    <li>
                        <a href="@Pagebreak(currentPage+1,urlPrefix,urlParams)">&raquo;</a>
                    </li>
                }
                else
                {
                    <li class="disabled">
                        <a>&raquo;</a>
                    </li>
                }
            }
    </ul>
</div>

把上面代码保存为PagebreakPartial.cshtml放在模板的Views/Shared目录下作为局部文件,这样就可以在所有需要分页的模板中调用,实现代码的重用性,下面用实例演示完整的分页模板。

@{
   //实例化一个分页信息描述类
   PageInfo pageInfo = new PageInfo()
        {
            PageSize = 10,
            CurrentPage = ViewBag.CurrentPage //系统预设
    };
    int columnId = Html.CurrentColumnId();//获取当前栏目id
    var dataList = Html.InfoDataList(new { ColumnId = columnId, OrderBy = "thedate desc" }, null, null, pageInfo);
}
<div class="news-list">
    @foreach (var item in dataList)
    {
        string url = Html.InfoDataUrl((int)item.ColumnId, (int)item.Id); //获取信息内容页url,固定语法。
        <div>
            <div class="title"><a href="@url" target="_blank">@item.Title</a></div>
            <div class="date">@item.Thedate</div>
        </div>
    }
</div>
@Html.Partial("PagebreakPartial", pageInfo)

模板制作人员可以在上面代码基础上完善,其中的@Html.Partial("PagebreakPartial", pageInfo)就是调用分页局部视图,第一个参数为文件名,第二个参数为PageInfo描述类,大家记得这种固定语法就可以了。


本页内容由塔灯网络科技有限公司通过网络收集编辑所得,所有资料仅供用户参考了本站不拥有所有权,如您认为本网页中由涉嫌抄袭的内容,请及时与我们联系,并提供相关证据,工作人员会在5工作日内联系您,一经查实,本站立刻删除侵权内容。本文链接:https://dengtar.com/19139.html
相关cms文章
 八年  行业经验

多一份参考,总有益处

联系深圳网站公司塔灯网络,免费获得网站建设方案及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:余经理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.