.net MVC4 ajax分頁技術實現

來源:互聯網
上載者:User

標籤:

實現思路:利用MVC的PartialView實現局部內容非同步載入。

實現過程 :

1,我的主列表頁命名為List,訪問URL為:/Test/List,control代碼如下:

 public ActionResult List()
        {
            PagingSetting ps = GetPagingSeting();
            ListPage<SYS_USER> list = new UserBLL().GetList(new Dictionary<string, object>(), ps);
            ViewBag.Data = list;


            if (Request.IsAjaxRequest())
            {
                return PartialView("_UserList");
            }
            else
            {
                return View();
            }
        }

簡要說明:當前請求為非同步請求時直接調用PartialView,否則轉向List主視圖。List的主視圖代碼如下:

@{
    ViewBag.Title = "List";
}
<link href="~/Contents/css/pager/pager-bar.css" rel="stylesheet" />
<script src="~/Scripts/jquery-1.8.3.min.js"></script>
<script src="~/Scripts/paginator.js"></script>


<div id="UserList">
   @Html.Partial("_UserList")
</div>
<div id="PageBar"></div>

簡要說明:主視圖中引用了我的局部視圖_UserList,而我的分頁代碼放在了局部視圖中,局部視圖代碼如下:

2,我的局部視圖名為:_UserList.cshtml  局部視圖主要實現需非同步調取的內容,代碼如下:

@{
    HH.Model.ListPage<HH.Model.SYS_USER> model = ViewBag.Data as HH.Model.ListPage<HH.Model.SYS_USER>;
    List<HH.Model.SYS_USER> list = model.ListData as List<HH.Model.SYS_USER>;
}


    @{foreach (var item in list)
    {
        <h4>@item.USER_NAME</h4>
    }
    }
   
    <script type="text/javascript">
        $(function () {
            $("#PageBar").Paginator({
                currentPage:@(model.CurrentPage),
                totalPages:@(model.TotalPages),
                pagesCount: 10,
                onPageClicked: function (page) {
                    $.post("/Test/List/?rand="+Math.random(),{page:page},function(data){
                        $("#UserList").html(data);
                    });
                }
            });


        });
    </script>

簡要說明:我的局部視圖,使用一段js調取分頁的相關資訊,每一次非同步請求該局部視圖,我都將該段js返回主視圖中。這樣做的主要目的是把處理分頁的主要商務邏輯與主視圖分開,作為一個單獨模組處理,相對解耦。

3,最終列表介面如下:


總結說明:點擊分頁按鈕時,發起一次非同步請求,非同步請求直接調用局部視圖,返回MVCHtmlString到主視圖中,完成分頁過程。相關JS和CSS代碼已上傳至下載頻道。

.net MVC4 ajax分頁技術實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.