asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页

yizhihongxing

当我们需要在asp.net网站中实现数据分页展示的功能时,可以使用GridView控件来实现。下面是实现asp.net GridView 分页展示的完整攻略。

安装PagedList.Mvc

我们可以通过Nuget安装PagedList.Mvc,在Manage NuGet Packages界面搜索PagedList.Mvc进行安装。这是一个非常常用的分页库,可以大大减轻分页的开发难度。

安装完成后,我们可以在代码中使用PagedList.Mvc的相关方法,实现快速方便的分页功能。

绑定数据源到GridView控件

在ASP.NET webform代码中,我们可以使用GridView控件来展示数据库中的数据。GridView控件可以与数据源进行绑定,并在网站中将数据以表格形式进行展示。

以下是GridView与数据源进行绑定的示例代码:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="ProductID" HeaderText="ProductID" SortExpression="ProductID" />
                <asp:BoundField DataField="ProductName" HeaderText="ProductName" SortExpression="ProductName" />
                <asp:BoundField DataField="CategoryName" HeaderText="CategoryName" SortExpression="CategoryName" />
                <asp:BoundField DataField="UnitPrice" HeaderText="UnitPrice" SortExpression="UnitPrice" />
            </Columns>
        </asp:GridView>

// 数据源SQLDataSource1
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>" SelectCommand="SELECT [ProductID], [ProductName], [CategoryName], [UnitPrice] FROM [ProductsWithCategories]"></asp:SqlDataSource>

GridView分页

下面是使用PagedList.Mvc库实现GridView分页的示例代码:

  1. 首先,在Controller中查询数据:
public ActionResult Index(string sortOrder, string searchString, int? page)
{
    ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
    ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
    var students = from s in db.Students
                   select s;
    if (!String.IsNullOrEmpty(searchString))
    {
        students = students.Where(s => s.LastName.Contains(searchString)
                               || s.FirstMidName.Contains(searchString));
    }
    switch (sortOrder)
    {
        case "name_desc":
            students = students.OrderByDescending(s => s.LastName);
            break;
        case "Date":
            students = students.OrderBy(s => s.EnrollmentDate);
            break;
        case "date_desc":
            students = students.OrderByDescending(s => s.EnrollmentDate);
            break;
        default:
            students = students.OrderBy(s => s.LastName);
            break;
    }
    int pageSize = 3;
    int pageNumber = (page ?? 1);
    return View(students.ToPagedList(pageNumber, pageSize));
}
  1. 在View中分页展示数据,使用PagedList.Mvc的分页方法:
@{
    ViewBag.Title = "Students";
}
<h2>Students</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>

@using (Html.BeginForm())
{
    <p>
        Find by name: @Html.TextBox("SearchString") <input type="submit" value="Search" />
    </p>
}
<table class="table">
    <tr>
        <th>
            @Html.ActionLink("Name", "Index", new { sortOrder = ViewBag.NameSortParm })
        </th>
        <th>
            @Html.ActionLink("Enrollment Date", "Index", new { sortOrder = ViewBag.DateSortParm })
        </th>
        <th></th>
    </tr>

@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.LastName) , @Html.DisplayFor(modelItem => item.FirstMidName)
        </td>
        <td>
            @Html.DisplayFor(modelItem => item.EnrollmentDate)
        </td>
        <td>
            @Html.ActionLink("Edit", "Edit", new { id=item.ID }) |
            @Html.ActionLink("Details", "Details", new { id=item.ID }) |
            @Html.ActionLink("Delete", "Delete", new { id=item.ID })
        </td>
    </tr>
}

</table>

<div>
    Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) of @Model.PageCount

    @Html.PagedListPager(Model, page => Url.Action("Index", 
        new { page, sortOrder = ViewBag.CurrentSort, searchString = ViewBag.CurrentFilter }))
</div>

总结

通过上述步骤,我们就可以简单轻松的实现asp.net GridView分页功能。使用PagedList.Mvc库可以让我们更加方便地实现分页,提高开发效率。同时,在实现GridView和数据源的绑定时,我们也可以根据具体需求灵活设置展示效果。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net gridview分页:第一页 下一页 1 2 3 4 上一页 最末页 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • 前端vue按1920*1080设计图的页面适配屏幕缩放并适配4K屏详解

    前端vue按1920*1080设计图的页面适配屏幕缩放并适配4K屏详解 在vue前端开发中,实现页面屏幕适配非常重要,你需要让你的网站在不同的屏幕上都能够正常显示,无论是普通的屏幕还是4K屏幕。本攻略将提供实现此目标的方法。 1. 页面设计 为了实现一个自适应的vue页面,你需要先将页面设计成1920*1080的尺寸,这是一个通用的页面尺寸。这个设计尺寸将帮…

    JavaScript 2023年6月11日
    00
  • 用javascript实现自动输出网页文本

    当你想要实现自动输出网页文本这个功能,可以通过使用JavaScript来实现。 步骤一:获取网页文本 要实现将网页文本进行自动输出,第一步就是需要获取网页的文本内容。获取网页文本的方法有很多种,比如可以用document.getElementsByTagName(“p”)来获取所有的<p>标签文本内容。 示例: let paragraphs = …

    JavaScript 2023年5月28日
    00
  • JS验证字符串功能

    下面我将详细讲解“JS验证字符串功能”的完整攻略。 1. 概述 在 JavaScript 中,我们可以通过正则表达式来验证字符串的合法性。正则表达式是一种强大的字符串匹配工具,它可以用来检查一个字符串是否符合某种模式。通过使用正则表达式,我们可以实现各种复杂的字符串验证功能。 2. 正则表达式的语法 正则表达式由以下几个部分组成: 字符串字面量或 RegEx…

    JavaScript 2023年5月28日
    00
  • 原生JavaScript实现刮刮乐

    关于“原生JavaScript实现刮刮乐”的攻略,我们可以按照以下步骤进行。 1. 准备工作 首先,我们需要在HTML文件中创建一个canvas元素,用于绘制刮去涂层后的图片。示例代码如下: <canvas id="scratch-card"></canvas> 接下来,我们需要准备两张图片。一张作为底部图片,一张…

    JavaScript 2023年6月10日
    00
  • 深入理解React Native核心原理(React Native的桥接(Bridge)

    深入理解React Native核心原理之桥接(Bridge) React Native是一种基于React的JS框架,它可以让你使用JavaScript和React的开发方式来构建iOS和Android的原生应用。这些原生应用实际上是通过React Native桥接(Bridge)在JavaScript和iOS/Android平台之间进行通信和交互的。 什…

    JavaScript 2023年6月11日
    00
  • javascript限制用户只能输汉字中文的方法

    要限制用户只能输入汉字中文,可以在JavaScript中使用正则表达式来检查用户输入的文本字符。以下是可以用来实现此目的的JavaScript代码: // 使用正则表达式检查文本中是否包含非中文字符 function isChinese(str) { var regex = /^[\u4E00-\u9FA5]+$/; // 匹配所有汉字 return reg…

    JavaScript 2023年5月19日
    00
  • 使用JavaScript解析URL的方法示例

    下面我就来详细讲解一下“使用JavaScript解析URL的方法示例”的完整攻略。 什么是URL? 在讲解解析URL的方法之前,我们需要先了解一下什么是URL。URL(Uniform Resource Locator)是指统一资源定位符,简单来说就是我们用来表示资源在网络上位置的方法。URL包含了一些组成部分,例如:协议、域名、端口号、路径、查询参数等等。 …

    JavaScript 2023年5月27日
    00
  • javascript 去字符串空格终极版(支持utf8)

    我们来详细讲解一下 “javascript 去字符串空格终极版(支持utf8)” 的完整攻略。 标准化题意 首先,我们需要将题意进行标准化,确定需求以及细节。 题目要求我们编写一个函数,来去除字符串中的空格。这个空格不仅包括普通的空格,也包括 TAB 和半角全角空格,且需要支持 utf8 编码。 解决方案 接下来,我们来讲解一下具体的解决方案。 我们可以使用…

    JavaScript 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部