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# Stream.Seek – 在流中定位

    Stream.Seek 方法用于在流中寻找具有给定偏移量的位置,并将流的读/写指针移动到该位置。Seek 方法可用于在文件中进行定位,以便读取或写入指定位置的数据。 使用方法 方法签名 public virtual long Seek(long offset, SeekOrigin origin); 参数含义 offset:偏移量。它表示要在流内移动的字节数…

    C# 2023年4月19日
    00
  • Unity实现背景图片淡入淡出效果

    当我们需要为我们的Unity场景添加背景图,并且想要实现淡入淡出效果时,我们可以采用以下步骤: 第一步:导入背景图片 在我们的Unity场景目录中,我们需要准备好我们想要添加为背景图的图片素材。这些图片素材可以在资源管理器中直接从我们的系统文件夹拖拽到Unity场景目录中。 第二步:创建背景对象和材质 接下来,我们需要为背景图准备一个独立的游戏对象,并给该对…

    C# 2023年6月3日
    00
  • c#目录操作示例(获取目录名称 获取子目录)

    下面我来详细讲解一下“c#目录操作示例(获取目录名称 获取子目录)”的完整攻略。 获取目录名称 获取目录名称可以使用Path类中的GetDirectoryName方法。该方法接收一个字符串参数,表示一个文件或目录的路径,返回该路径所在的目录的路径字符串。 示例代码如下: string path = @"C:\Users\Administrator\…

    C# 2023年6月1日
    00
  • ASP.NET MVC重写RazorViewEngine实现多主题切换

    ASP.NET MVC框架提供了Razor视图引擎来生成HTML响应。Razor视图引擎自带的主题设置局限较大,无法实现灵活的UI主题切换。本攻略将介绍如何重写RazorViewEngine以支持多主题切换。 准备工作 创建一个名为“Themes”的文件夹,用于保存所有主题的模板文件。 创建名为ThemeViewEngine.cs的自定义视图引擎,并重写Ra…

    C# 2023年5月31日
    00
  • SpringMVC结合Jcrop实现图片裁剪

    SpringMVC结合Jcrop实现图片裁剪 简介 在Web开发中,图片处理是非常常用而且重要的一个功能。而在实际开发中,我们经常需要对图片进行剪裁操作,这也是图片处理的一个重要环节。本篇文章将介绍如何在SpringMVC框架下,使用Jcrop第三方库实现对图片的裁剪操作。 准备工作 在开始我们的教程之前,需要先准备好以下环境: Java 8+ Spring…

    C# 2023年5月31日
    00
  • asp.net 计算字符串中各个字符串出现的次数

    计算字符串中各个字符串出现的次数可以通过 Hash 表(Dictionary)来实现,同时可以利用正则表达式对字符串进行匹配。本攻略将根据输入的字符串 s,利用 Dictionary 统计各个字符串出现的次数,并给出两个示例说明。 步骤 1:导入命名空间 在代码文件中引入以下命名空间: using System.Collections.Generic; //…

    C# 2023年6月8日
    00
  • C#中out保留字用法实例分析

    下面我将详细讲解一下C#中out保留字的使用方法和实例分析。 什么是out保留字? out是C#中的一个保留字,表示这是一个输出参数。 out保留字用法示例 示例一 private static void OutParamExample(out int x) { x = 5; } static void Main(string[] args) { int y…

    C# 2023年5月31日
    00
  • C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小

    下面是关于“C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小”的详细攻略。 1. 先判断是否存在再创建文件夹或文件 在C#中,我们可以使用System.IO.Directory和System.IO.File类来创建文件夹或文件,并且可以通过相应的方法,判断是否存在。 1.1 判断文件夹是否存在并创建文件夹 如果我们需要判断一个文件夹是否存在,并在不存…

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