asp.net 无刷新分页实例代码

ASP.NET 是一款开放源码的服务器端 Web 应用程序框架,提供了丰富的功能和强大的工具,为开发者提供了高效的方式来构建、部署和维护 Web 应用程序。无刷新分页是其中一个常见需求,本文将通过两个示例来演示如何实现ASP.NET无刷新分页功能。

示例1:使用AJAX实现无刷新分页

步骤1:创建数据库表和数据

CREATE TABLE [dbo].[Users](
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](50) NOT NULL,
    [Age] [int] NOT NULL,
    [Gender] [nvarchar](10) NOT NULL,
    [Address] [nvarchar](100) NOT NULL
)

步骤2:创建数据访问类和方法

public class UserData
{
    public int ID { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public string Gender { get; set; }
    public string Address { get; set; }
}
public class UserDA
{
    public static List<UserData> GetUserList(int pageIndex, int pageSize)
    {
        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = con;
                cmd.CommandText = "select top (@pageSize) * from (select row_number() over (order by ID) as rownumber, ID, Name, Age, Gender, Address from Users) as t where rownumber > (@pageIndex-1)*@pageSize order by ID";
                cmd.Parameters.AddWithValue("@pageSize", pageSize);
                cmd.Parameters.AddWithValue("@pageIndex", pageIndex);
                con.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                List<UserData> userList = new List<UserData>();
                while (reader.Read())
                {
                    UserData user = new UserData();
                    user.ID = Convert.ToInt32(reader["ID"]);
                    user.Name = reader["Name"].ToString();
                    user.Age = Convert.ToInt32(reader["Age"]);
                    user.Gender = reader["Gender"].ToString();
                    user.Address = reader["Address"].ToString();
                    userList.Add(user);
                }
                return userList;
            }
        }
    }
    public static int GetUserCount()
    {
        using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con"].ConnectionString))
        {
            using (SqlCommand cmd = new SqlCommand())
            {
                cmd.Connection = con;
                cmd.CommandText = "select count(*) from Users";
                con.Open();
                return Convert.ToInt32(cmd.ExecuteScalar());
            }
        }
    }
}

步骤3:编写前台页面

<!DOCTYPE html>
<html>
<head>
    <title>ASP.NET分页无刷新实例</title>
    <script src="https://cdn.bootcss.com/jquery/3.5.1/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>
    <link href="https://cdn.bootcss.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet">
    <script type="text/javascript">
        $(document).ready(function () {
            LoadData(1);
        });

        function LoadData(pageIndex) {
            var pageSize = 10;
            $.ajax({
                type: "POST",
                url: "Default.aspx/GetUserList",
                data: '{pageIndex: ' + pageIndex + ', pageSize: ' + pageSize + '}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    var html = "";
                    for (var i = 0; i < data.d.length; i++) {
                        html += "<tr><td>" + data.d[i].Name + "</td><td>" + data.d[i].Age + "</td><td>" + data.d[i].Gender + "</td><td>" + data.d[i].Address + "</td></tr>";
                    }
                    $("#userTableBody").html(html);
                }
            });
        }
    </script>
</head>
<body>
    <div class="container">
        <h1>ASP.NET分页无刷新实例</h1>
        <table class="table">
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>性别</th>
                    <th>地址</th>
                </tr>
            </thead>
            <tbody id="userTableBody">
            </tbody>
        </table>
        <nav>
            <ul class="pagination">
                <li class="page-item"><a class="page-link" href="javascript:void(0);" onclick="LoadData(1);">1</a></li>
                <li class="page-item"><a class="page-link" href="javascript:void(0);" onclick="LoadData(2);">2</a></li>
                <li class="page-item"><a class="page-link" href="javascript:void(0);" onclick="LoadData(3);">3</a></li>
                <li class="page-item"><a class="page-link" href="javascript:void(0);" onclick="LoadData(4);">4</a></li>
                <li class="page-item"><a class="page-link" href="javascript:void(0);" onclick="LoadData(5);">5</a></li>
            </ul>
        </nav>
    </div>
</body>
</html>

步骤4:编写后台代码

[WebMethod]
public static List<UserData> GetUserList(int pageIndex, int pageSize)
{
    List<UserData> userList = UserDA.GetUserList(pageIndex, pageSize);
    return userList;
}

示例2:使用Bootstrap和jQuery实现无刷新分页

步骤1:创建数据库表和数据

与示例1相同

步骤2:创建数据访问类和方法

与示例1相同

步骤3:编写前台页面

<!DOCTYPE html>
<html>
<head>
    <title>ASP.NET无刷新分页</title>
    <script src="https://cdn.bootcss.com/jquery/2.1.4/jquery.min.js"></script>
    <script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
    <script type="text/javascript">
        $(document).ready(function () {
            LoadData(1);
        });

        function LoadData(pageIndex) {
            var pageSize = 10;
            $.ajax({
                type: "POST",
                url: "Default.aspx/GetUserList",
                data: '{pageIndex: ' + pageIndex + ', pageSize: ' + pageSize + '}',
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (data) {
                    var html = "";
                    for (var i = 0; i < data.d.length; i++) {
                        html += "<div class='panel panel-default'><div class='panel-body'><p>姓名:" + data.d[i].Name + "</p><p>年龄:" + data.d[i].Age + "</p><p>性别:" + data.d[i].Gender + "</p><p>地址:" + data.d[i].Address + "</p></div></div>";
                    }
                    $("#userList").html(html);
                }
            });
        }

        function setPage(pageIndex) {
            var pageCount = 5;
            if ($("#btnPrefab").length <= 0) return;
            var goIndex = 1;
            if (pageIndex < 1) goIndex = 1;
            else if (pageIndex > pageCount) goIndex = pageCount;
            else {
                goIndex = pageIndex;
            }
            var html = "";
            if (goIndex != 1)
                html += "<li><a href='javascript:void(0);' onclick='LoadData(1);'>首页</a></li>";
            else
                html += "<li class='disabled'><a href='javascript:void(0);'>首页</a></li>";

            for (var i = 1; i <= pageCount; i++) {
                if (i == pageIndex)
                    html += "<li class='active'><a href='javascript:void(0);'>" + i + "</a></li>";
                else
                    html += "<li><a href='javascript:void(0);' onclick='LoadData(" + i + ");'>" + i + "</a></li>";
            }

            if (goIndex != pageCount)
                html += "<li><a href='javascript:void(0);' onclick='LoadData(" + pageCount + ");'>末页</a></li>";
            else
                html += "<li class='disabled'><a href='javascript:void(0);'>末页</a></li>";

            $("#btnPrefab").html(html);
        }
    </script>
</head>
<body>
    <div class="container">
        <h1>ASP.NET无刷新分页</h1>
        <div id="userList"></div>
        <ul id="btnPrefab" class="pagination"></ul>
    </div>
</body>
</html>

步骤4:编写后台代码

与示例1相同

以上就是两个例子的代码实现,可以根据自己的需求选择其中一种实现无刷新分页功能。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net 无刷新分页实例代码 - Python技术站

(0)
上一篇 2023年5月31日
下一篇 2023年5月31日

相关文章

  • C#实现字符串倒序的写法

    以下是“C#实现字符串倒序的写法”的完整攻略: 1. 使用内置函数 C#已经为字符串倒序提供了一个内置函数——Reverse(),可以直接操作字符数组,实现字符串倒序。下面是示例代码: using System; class Program { static void Main() { string str = "Hello, world!&quo…

    C# 2023年6月1日
    00
  • C#实现Windows Form调用R进行绘图与显示的方法

    下面我将为您详细讲解“C#实现WindowsForm调用R进行绘图与显示的方法”的完整攻略。本攻略将分为以下几个步骤: 安装R语言环境和R.Net库 在使用C#调用R前,需要先安装R语言环境和R.Net库。可以在R官网(https://www.r-project.org/)下载最新版本的R语言环境,并在控制台中安装R.Net库。R.Net库可以通过NuGet…

    C# 2023年5月15日
    00
  • C#使用NPOI导入Excel的方法详解

    下面详细讲解“C#使用NPOI导入Excel的方法详解”的完整攻略。 安装NPOI 要使用NPOI,需要先安装它。可以通过NuGet包管理器搜索和安装NPOI。 导入Excel的方法 首先,需要先读取Excel文件。可以使用NPOI中的HSSFWorkbook或XSSFWorkbook类来打开Excel文件。 using NPOI.HSSF.UserMode…

    C# 2023年6月7日
    00
  • C# DateTime日期比较方法案例详解

    C# DateTime日期比较方法案例详解 在C#中,我们可以使用DateTime类型来操作日期和时间。在实际开发中,会经常涉及到日期的比较操作,例如判断两个日期的先后顺序、计算两个日期之间的天数等。本文将介绍C#中常用的日期比较方法及其使用案例。 比较方法 C#中常用的日期比较方法如下: 方法名 描述 Equals 判断指定DateTime对象是否与此Da…

    C# 2023年6月1日
    00
  • C#内置泛型委托之Action委托

    当我们在C#中需要定义一个不带参数且没有返回值的委托时,可以使用Action委托来实现。Action委托是一个内置的泛型委托,用于封装一个无参数且无返回值的方法。 Action委托的语法 下面是Action委托的语法: public delegate void Action(); public delegate void Action<in T>…

    C# 2023年6月1日
    00
  • .NET Core(.NET6)中gRPC使用实践

    下面是关于“.NET Core(.NET6)中gRPC使用实践”的完整攻略,包含两个示例。 1. 什么是gRPC gRPC是一种高性能、开源、通用的RPC框架,由Google开发。它使用Protocol Buffers作为接口定义语言(IDL),可以在多种语言中使用,包括C#、Java、Python等。gRPC支持双向流、流控制、消息压缩等特性,可以用于构建…

    C# 2023年5月15日
    00
  • 使用VSCode开发和调试.NET Core程序的方法

    使用VSCode开发和调试.NET Core程序的方法 在本攻略中,我们将详细介绍如何使用VSCode开发和调试.NET Core程序。我们将提供两个示例说明,演示如何使用VSCode创建和调试.NET Core Web应用程序和控制台应用程序。 前置条件 在开始之前,需要确保已经安装了以下软件: .NET Core SDK Visual Studio Co…

    C# 2023年5月16日
    00
  • C#中math类的全部运算方法(总结)

    C#中Math类的全部运算方法(总结) Math类是C#中一个非常重要的数学计算类,它提供了丰富的方法来对数字进行各种数学运算,比如绝对值、三角函数、对数、幂等函数等等。在本篇文章中,我将对Math类的全部运算方法进行详细的总结和解释,方便大家快速了解和应用。 绝对值和抹零函数 Math.Abs()方法 Math.Abs()方法可以返回一个数的绝对值。简单来…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部