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日

相关文章

  • 编写简易Android天气应用的代码示例

    编写Android天气应用是一个常见的练手项目,可以帮助开发者熟悉Android开发的基本流程和技术。本文将提供一个简易的Android天气应用的代码示例,包括两个示例。 示例1:获取天气数据 要编写一个天气应用,首先需要获取天气数据。可以使用第三方天气API来获取天气数据。以下是一个示例: public class WeatherAPI { private…

    C# 2023年5月15日
    00
  • 基于MVC4+EasyUI的Web开发框架之附件上传组件uploadify的使用

    基于MVC4+EasyUI的Web开发框架之附件上传组件uploadify的使用 什么是uploadify uploadify是一款基于jQuery的上传文件组件,使用uploadify可以方便地在网页中实现文件上传和管理功能。uploadify功能强大,支持多文件上传、拖拽上传、进度条显示、文件类型限制等特性。 如何使用uploadify 引入upload…

    C# 2023年5月31日
    00
  • C#(int)中Convert、Parse、TryParse的区别

    区别:Convert、Parse、TryParse都是将字符串转换为数字类型的方法,但它们的使用场景和实现方式略有不同: Convert Convert是.NET Framework中的一个通用类型转换方法,可以将一个值从一种数据类型转换为另一种数据类型。其中,Convert.ToInt32(string)可以将字符串转换为32位带符号整数类型(int)。 …

    C# 2023年5月15日
    00
  • asp.net下比较两个等长字符串是否含有完全相同字符(忽略字符顺序)

    要在ASP.NET下比较两个等长字符串是否含有完全相同的字符(忽略字符顺序),一种方法是对每个字符串进行排序,然后将结果进行比较。下面是具体的步骤。 第一步:定义比较函数 首先,我们需要定义一个比较函数。这个函数用于对字符串进行排序,并将排序结果作为函数的返回值。 public string SortString(string s) { char[] ca …

    C# 2023年6月7日
    00
  • c#的treeview绑定和获取值的方法

    下面是针对C# TreeView控件的绑定和获取值方法的完整攻略。 一、TreeView控件的绑定方法 1. 简单绑定 最基本的TreeView控件绑定方法是手动编写代码,逐个添加TreeView控件的节点。首先需要创建TreeView控件实例,并设置其Dock、Size、Location等属性,然后为其每一个要添加的节点编写代码,这种方法比较麻烦但是可以灵…

    C# 2023年5月31日
    00
  • C#异步原理详情

    C#异步原理详情 什么是异步? 在C#语言中,异步是指程序不必等待某个操作完成,而是可以继续执行其他操作。在等待那个操作完成时,程序可以执行一些其他的操作。异步操作可以大大提高程序的响应速度。 异步方法的定义 在C#中,异步方法就是一个标记为async的方法。对于标记为async的方法,编译器会在编译时生成一个状态机,完成异步操作。 异步方法的原理 当调用异…

    C# 2023年5月15日
    00
  • JS实现按比例缩放图片的方法(附C#版代码)

    接下来我将详细讲解“JS实现按比例缩放图片的方法(附C#版代码)”的完整攻略。 1. 前言 当你需要在网站上展示图片时,通常需要在页面中调整图片的大小。但是,如果缩放不当,可能导致图片失真,影响用户体验。因此,本文将介绍一种JS实现按比例缩放图片的方法,避免图片失真。 2. 实现步骤 本方法分为以下几个步骤: 2.1 获取图片信息 首先,需要通过JS获取图片…

    C# 2023年5月31日
    00
  • layui实现显示数据表格、搜索和修改功能示例

    以下是将layui用于显示数据表格、搜索和修改功能的完整攻略。 前置条件 首先你需要安装layui包,你可以从layui官网下载或使用CDN链接 引入layui.js和layui.css文件 显示数据表格 这是一个基于layui table模块的示例。下面是一个基本的HTML结构,它定义了一个table和一个div包含分页: <table id=&qu…

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