亚洲 自拍 另类小说综合图区,欧洲熟妇色XXXX欧美老妇多毛,国产精品十八禁在线观看,饥渴少妇色诱公

模板中如何实现分页

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

@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描述类,大家记得这种固定语法就可以了。

亚洲 自拍 另类小说综合图区,欧洲熟妇色XXXX欧美老妇多毛,国产精品十八禁在线观看,饥渴少妇色诱公

品牌简介

{转码主词}