asp.net gridview 72般绝技第1/2页

ASP.NET GridView 72般绝技攻略

什么是 ASP.NET GridView?

ASP.NET GridView 是 ASP.NET 网站开发中非常常用的控件之一。它可以方便地在网页上展示数据,并且提供了很多丰富的特性,如排序、分页、过滤、编辑等。

GridView 的基本用法

GridView 的基本用法非常简单,只需要在 ASP.NET 网页上添加一个 GridView 控件,并设置它的 DataSource 属性为一个数据源,就能显示数据了。

以下是基本用法的示例(假设我们有一个名为 DataSource 的数据源):

<asp:GridView runat="server" ID="MyGridView" DataSourceID="DataSource" />
<asp:SqlDataSource runat="server" ID="DataSource" ConnectionString="..." SelectCommand="SELECT * FROM MyTable" />

在上面的代码中,我们创建了一个 ID 为 MyGridView 的 GridView 控件,并将它的 DataSourceID 属性设置为 DataSource。同时,我们还创建了一个名为 DataSource 的 SqlDataSource 控件,并将它的 ConnectionString 属性设置为数据库连接字符串,将 SelectCommand 属性设置为 SQL 查询语句,使它可以获取数据。

GridView 的特性和绝技

除了基本用法之外,GridView 还有很多非常实用的特性和绝技,如以下 5 条:

1. 自定义列

GridView 的自定义列功能可以让我们自定义展示数据的方式。例如,我们想让表格中的某一列显示为链接,可以使用 HyperLinkField 控件来创建一个链接列,并设置其 DataNavigateUrlFields 和 DataTextField 属性为数据源中的字段名。

以下是自定义列的示例:

<asp:GridView runat="server" ID="MyGridView" DataSourceID="DataSource">
    <Columns>
        <asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="~/Details.aspx?ID={0}" DataTextField="Title" HeaderText="Title" />
        <asp:BoundField DataField="Author" HeaderText="Author" />
        <asp:BoundField DataField="Date" HeaderText="Date" />
    </Columns>
</asp:GridView>

在上面的代码中,我们使用了 HyperLinkField 控件创建了一个链接列,并将 DataNavigateUrlFields 属性设置为 ID 字段,使它成为链接的参数,将 DataNavigateUrlFormatString 属性设置为链接的格式,将 DataTextField 属性设置为 Title 字段,使它成为链接的文本。

2. 分页

GridView 的分页功能可以让我们方便地浏览和管理大量数据。它提供了自动分页和手动分页两种模式,可以设置每页显示的数据行数,还可以自定义分页样式。

以下是自动分页的示例:

<asp:GridView runat="server" ID="MyGridView" DataSourceID="DataSource" AllowPaging="true" PageSize="10" />
<asp:SqlDataSource runat="server" ID="DataSource" ConnectionString="..." SelectCommand="SELECT * FROM MyTable" />

在上面的代码中,我们将 AllowPaging 属性设置为 true,使 GridView 启用分页功能。将 PageSize 属性设置为 10,表示每页显示 10 行数据。

3. 排序

GridView 的排序功能可以让我们方便地按照某一列的值来排序数据。它提供了自动排序和手动排序两种模式,可以设置默认排序列和排序方向,还可以自定义排序样式。

以下是自动排序的示例:

<asp:GridView runat="server" ID="MyGridView" DataSourceID="DataSource" AllowSorting="true" />
<asp:SqlDataSource runat="server" ID="DataSource" ConnectionString="..." SelectCommand="SELECT * FROM MyTable ORDER BY Title" />

在上面的代码中,我们将 AllowSorting 属性设置为 true,使 GridView 启用排序功能。并且在数据源的 SQL 查询语句中,使用了 ORDER BY 子句将数据按照 Title 列的值进行排序。

4. 过滤

GridView 的过滤功能可以让我们方便地筛选数据,只显示符合条件的数据。它提供了自动过滤和手动过滤两种模式,可以设置默认过滤列和过滤操作符,还可以自定义过滤样式。

以下是自动过滤的示例:

<asp:GridView runat="server" ID="MyGridView" DataSourceID="DataSource" AllowFiltering="true" />
<asp:SqlDataSource runat="server" ID="DataSource" ConnectionString="..." SelectCommand="SELECT * FROM MyTable" FilterExpression="Title LIKE '%{0}%'">
    <FilterParameters>
        <asp:ControlParameter Name="Title" ControlID="txtFilter" PropertyName="Text" />
    </FilterParameters>
</asp:SqlDataSource>
<asp:TextBox runat="server" ID="txtFilter" />

在上面的代码中,我们将 AllowFiltering 属性设置为 true,使 GridView 启用过滤功能。并且在数据源的 FilterExpression 属性中,使用了 Title LIKE '%{0}%' 表达式来进行过滤。其中,{0} 表示过滤参数,由 FilterParameters 中的 ControlParameter 控件提供。在这里,ControlID 属性设置为 txtFilter,表示过滤参数由 ID 为 txtFilter 的文本框的 Text 属性提供。

5. 编辑

GridView 的编辑功能可以让我们方便地修改数据。它提供了自动和手动两种编辑模式,可以设置编辑列和编辑样式,还可以自定义编辑逻辑。

以下是自动编辑的示例:

<asp:GridView runat="server" ID="MyGridView" DataSourceID="DataSource" AutoGenerateEditButton="true" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Title" HeaderText="Title" />
        <asp:BoundField DataField="Author" HeaderText="Author" />
        <asp:BoundField DataField="Date" HeaderText="Date" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource runat="server" ID="DataSource" ConnectionString="..." SelectCommand="SELECT * FROM MyTable" UpdateCommand="UPDATE MyTable SET Title=@Title, Author=@Author, Date=@Date WHERE ID=@ID">
    <UpdateParameters>
        <asp:Parameter Name="Title" />
        <asp:Parameter Name="Author" />
        <asp:Parameter Name="Date" />
        <asp:Parameter Name="ID" Type="Int32" />
    </UpdateParameters>
</asp:SqlDataSource>

在上面的代码中,我们将 AutoGenerateEditButton 属性设置为 true,使 GridView 自动生成一个编辑按钮。并且设置了 GridView 的列和数据源的 UpdateCommand 属性,以支持编辑操作。

示例说明

示例一:自定义列

假设我们有一个学生信息表格,其中包含学生的 ID、姓名和年龄。我们想让学生姓名在表格中显示为链接,点击后能够跳转到学生详情页面。

我们可以使用 HyperLinkField 控件来创建一个链接列,并将 DataNavigateUrlFields 和 DataTextField 属性分别设置为 ID 和姓名字段。

代码如下:

<asp:GridView runat="server" ID="MyGridView" DataSourceID="DataSource">
    <Columns>
        <asp:BoundField DataField="ID" HeaderText="ID" />
        <asp:HyperLinkField DataNavigateUrlFields="ID" DataNavigateUrlFormatString="~/Details.aspx?ID={0}" DataTextField="Name" HeaderText="Name" />
        <asp:BoundField DataField="Age" HeaderText="Age" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource runat="server" ID="DataSource" ConnectionString="..." SelectCommand="SELECT * FROM Students" />

在上面的代码中,我们使用了 HyperLinkField 控件创建了一个链接列,将 DataNavigateUrlFields 属性设置为 ID 字段,使它成为链接的参数,将 DataNavigateUrlFormatString 属性设置为链接的格式,将 DataTextField 属性设置为 Name 字段,使它成为链接的文本。

示例二:手动编辑

假设我们有一个学生成绩表格,其中包含学生的姓名和数学成绩。我们想让用户能够修改学生的成绩。

我们可以将 GridView 的 AutoGenerateEditButton 属性设置为 false,手动创建一个 CommandField,将其 ShowEditButton 属性设置为 true,来创建一个编辑按钮。并且,我们需要手动设置 GridView 的编辑列和数据源的 UpdateCommand 属性,以支持编辑操作。

代码如下:

<asp:GridView runat="server" ID="MyGridView" DataSourceID="DataSource" AutoGenerateEditButton="false" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Name" HeaderText="Name" />
        <asp:BoundField DataField="Math" HeaderText="Math" />
        <asp:CommandField ShowEditButton="true" />
    </Columns>
</asp:GridView>
<asp:SqlDataSource runat="server" ID="DataSource" ConnectionString="..." SelectCommand="SELECT * FROM Scores" UpdateCommand="UPDATE Scores SET Math=@Math WHERE Name=@Name">
    <UpdateParameters>
        <asp:Parameter Name="Math" Type="Int32" />
        <asp:Parameter Name="Name" />
    </UpdateParameters>
</asp:SqlDataSource>

在上面的代码中,我们将 AutoGenerateEditButton 属性设置为 false,手动创建了一个 CommandField,并将其 ShowEditButton 属性设置为 true,从而创建了一个编辑按钮。并且,我们设置了 GridView 的列和数据源的 UpdateCommand 属性,以支持编辑操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net gridview 72般绝技第1/2页 - Python技术站

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

相关文章

  • C# Pointer指针应用实例简述

    C# Pointer指针应用实例简述 在C#语言中,指针(Pointer)是一个非常重要的概念,它可以让我们高效地进行内存操作。本文将简单介绍指针的基本概念,并通过两个应用实例说明指针的具体操作方法。 指针的基本概念 指针是一个变量,它存储着另一个变量的内存地址。在C#中,通过使用关键字“unsafe”来开启指针使用的权限。同时,为了增加运行时的安全性,C#…

    C# 2023年5月31日
    00
  • .net core中高效的动态内存管理方案

    在本攻略中,我们将详细讲解.NET Core中高效的动态内存管理方案,并提供两个示例说明。 使用ArrayPool:首先,我们可以使用.NET Core提供的ArrayPool类来管理动态内存。ArrayPool类可以重用数组,从而减少内存分配和垃圾回收的开销。我们可以按照以下步骤操作: var pool = ArrayPool<byte>.Sh…

    C# 2023年5月16日
    00
  • WPF+ASP.NET SignalR实现简易在线聊天功能的示例代码

    下面是关于“WPF+ASP.NET SignalR实现简易在线聊天功能的示例代码”的完整攻略。 WPF+ASP.NET SignalR实现简易在线聊天功能 1. 简介 本文旨在讲解如何使用WPF和ASP.NET SignalR实现简易在线聊天功能,供初学者参考。 2. 准备 在开始之前,需要进行一些准备工作: .NET框架:确保本地已经安装了.NET框架 V…

    C# 2023年5月31日
    00
  • Unity中 mesh生成斜坡的示例代码

    下面我为你详细讲解如何在Unity中生成斜坡的示例代码。 Unity中mesh生成斜坡的示例代码 1. 创建空白的GameObject 首先我们需要在场景中创建一个空白的GameObject。你可以在Unity的菜单栏中选择GameObject -> CreateEmpty来创建它。 2. 添加MeshFilter和MeshRenderer组件 选中G…

    C# 2023年5月15日
    00
  • asp.net(c#)不可访问,因为它受保护级别限制

    当在 ASP.NET(C#)应用程序中使用类成员、方法、或属性时,有时候会出现“不可访问,因为它受保护级别限制”的异常。这是因为在 C# 中每个类成员、方法、或属性都有一个访问修饰符,它用于限制其他代码中对它的访问权限。 以下是几种可能的修饰符: public: 所有代码都可以访问它 private: 只有类内部的代码能够访问它 protected: 只有类…

    C# 2023年5月15日
    00
  • 亲自教你实现栈及C#中Stack源码分析

    亲自教你实现栈及C#中Stack源码分析 栈的定义 栈是一种具有特殊行为的线性数据结构,栈中的元素遵循 LIFO(Last In First Out) 原则: 入栈(Push):在栈的顶部添加一个元素; 出栈(Pop):从栈的顶部移除一个元素; 取顶(Peek):获取栈顶元素,但不对栈进行操作; 判空(IsEmpty):判断栈中是否有元素。 栈的实现方式有两…

    C# 2023年6月1日
    00
  • bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法

    好的。针对 “bootstrap datetimepicker 日期插件在火狐下出现一条报错信息的原因分析及解决办法” 这个问题,需要做如下解读: 确认问题:在使用 bootstrap datetimepicker 日期插件的过程中,在火狐浏览器下会出现一条报错信息。 原因分析:bootstrap datetimepicker 日期插件基于 jQuery,它…

    C# 2023年6月1日
    00
  • ASP.NET MVC 控制器与视图

    下面来介绍 ASP.NET MVC 控制器和视图,以下内容将涉及到 MVC 的基础知识、控制器与视图的概念、功能和使用方法,同时提供两个示例说明以加深理解。 什么是 ASP.NET MVC 框架? ASP.NET MVC 框架是微软推出的一种用于构建 Web 应用程序的设计模式,其主要思想是将应用程序分为三个部分:模型(Model)、视图(View)和控制器…

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