Javascript 如何为mvc3.net中的表提供运行时分页

Javascript 如何为mvc3.net中的表提供运行时分页,javascript,jquery,.net,ajax,asp.net-mvc-3,Javascript,Jquery,.net,Ajax,Asp.net Mvc 3,我正在mvc3.net中创建运行时表。我从控制器获取json集合,并根据json集合创建运行时表 首先,我只是初始化表格 <div id="DisplayBookChapterList" class="fLeft per30 mr15"> <table class="contentTable" id="tblDisplayChapterList" > </table> 在运行时,我使用下面给定

我正在mvc3.net中创建运行时表。我从控制器获取json集合,并根据json集合创建运行时表

首先,我只是初始化表格

<div id="DisplayBookChapterList" class="fLeft per30 mr15">        
    <table class="contentTable" id="tblDisplayChapterList" >            
         </table>
在运行时,我使用下面给定的代码填充表行

$.getJSON("@Url.Action("GetBookChapterList", "CourseManagement")" + '/' + bookname,  function (data) {
$.each(data, function (key, val) {
                BookChapterlist += '<tr><td style="display:none" id=ChapterListBookID value=' + val.BookID + '>' + val.BookID + '</td><td>' + val.ChapterNo + ' </td><td>' + val.Title + '</td><td><input type=checkbox id="' + val.ChapterID + '"></td></tr>';

}
});               
$('#DisplayBookChapterList table').append(BookChapterlist);

我想对这个动态创建的表进行分页。

向GetBookChapterList操作方法添加可选的“Page”参数,并使GetBookChapterList返回该页的数据。如果使用实体框架,请使用IQueryable上的Skip和Take方法来实现分页


在浏览器中,在获取并重新呈现下一页/上一页数据的表底部呈现下一页/上一页链接。

您需要创建分页链接以选择特定页、下一页、上一页、第一页、最后一页或任何您需要的内容。例如

<ul>        
    @foreach (var page in Enumerable.Range(1, numPages)) {
        <li>@Html.ActionLink(page.ToString(), "GetBookChapterList", "CourseManagement", new {page}, new {@class = "page-link"})</li>
    }        
</ul>
请注意,所有链接都有css类页面链接

在服务器端,将页面参数添加到操作中,以便知道在控制器中获取哪个页面

现在,回到HTML代码:每个链接的href是从中获取数据的地址,我们可以在JavaScript代码中使用它:

<script>
    $(function() {
        $(".page-link").on('click', function(e) {
            e.preventDefault();
            $.getJSON($(this).attr('href'), function(data) {
                console.log(data);
            });
        });
    });
</script>
这种方法的好处在于,对于禁用了JavaScript的客户端,您可以轻松地使用它:在GetBookChapterList操作中,检查请求是否为ajax request request.IsAjaxRequest。如果是,则返回所需的JSON数据。如果没有,则呈现一个正常的完整页面,显示表的选定页面

这通常是一个很好的方法:如果可能的话,确保站点在没有JavaScript的情况下工作,然后添加JavaScript来改进它