码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • ASP.net web应用 GridView控件常用方法


    GridView 控件是 ASP.NET Web Forms 中常用的数据展示控件之一。它提供了一个网格形式的表格,用于显示和编辑数据。GridView 控件对于包含大量数据、需要进行分页、排序和筛选的情况非常有用。

    GridView 控件的主要特性包括:

    1. 数据绑定:GridView 可以与各种数据源进行绑定,如数据表、数据集、数据视图、对象集合等。可以通过设置 DataSource 属性或在代码中进行绑定。

    2. 自动生成列:GridView 控件可以自动生成列,根据绑定的数据源自动创建相应的列,每列对应数据源中的一个字段。

    3. 模板列:除了自动生成列,GridView 还支持模板列。通过模板列,可以自定义每列的样式、内容和行为,例如添加按钮、复选框、图标等。

    4. 分页功能:GridView 提供分页功能,允许用户浏览大量数据并按页查看。可以设置 PageSize 属性来控制每页显示的记录数,并通过分页导航在不同页之间切换。

    5. 排序和筛选:GridView 支持按列进行排序和筛选。用户可以单击列标题进行排序,或者使用内置的筛选控件进行数据筛选。

    6. 编辑和更新:GridView 允许用户编辑数据并将更改保存回数据源。它提供了内置的编辑行和命令按钮,用户可以点击编辑按钮进入编辑模式,并使用更新按钮将修改保存回数据源。

    7. 样式和外观:GridView 具有丰富的样式和外观定制选项。可以使用 CSS 样式或设置属性来定义网格和单元格的样式,以及鼠标悬停样式、选定样式等。

    GridView 控件是一个强大而灵活的数据显示和编辑工具,可以轻松为 Web 应用程序提供交互和管理数据的功能。

    常用的使用方法

         1.数据绑定

    后端代码:

    设置绑定数据源

    gv.DataSource=list;

    确认绑定数据

    gv.DataBind();

    list为泛型集合的实体

    以上代码放在页面的加载事件就可以显示出一张表的所有数据

    2.自定义显示列

    上一步我们给GridView绑定了数据,但是他会把所有的数据全部显示出来,如果我们表中有部分信息不想显示出来怎么办?

    这个关键属性为 AutoGenerateColumns

    可设置值为bool类型   AutoGenerateColumns="false" 时会关闭自动加载全部列

    接下来的每列数据显示就需要我们在前台手动添加


       
           
       

    这句代码是简单的数据绑定列  DataField为绑定的列  HeaderText是表头列名

    DataFormatString="{0:D}"

    这条属性为格式化字符串 {0:D} 为格式化日期类型yyyy年mm月dd日

    更多的格式化方法可以自行网上搜索

    3.自定义列 

     是 ASP.NET Web Forms 中的一个控件,用于在 GridView、DetailsView 和 ListView 等数据绑定控件中定义自定义模板。

     具有以下用法和优点:

    1. 自定义布局:使用 ,您可以自定义数据绑定控件中每个单元格的布局和样式。您可以在  中定义自己的 HTML 结构,包括使用 HTML 标签、CSS 样式和其他 ASP.NET 控件。

    2. 数据绑定: 允许您在  中绑定数据字段到控件或 HTML 元素。您可以使用数据绑定表达式、绑定控件(如 、、 等)或自定义 HTML 标记。

    3. 事件处理:您可以在  中为控件或 HTML 元素添加事件处理程序。这使您能够对用户的交互作出响应,例如处理按钮点击、文本框更改等。

    4. 多列布局:通过在  中嵌套多个控件或 HTML 元素,您可以实现复杂的多列布局。这对于显示复杂的数据结构或自定义样式非常有用。

    5. 灵活性: 提供了灵活性,允许您根据需要自定义数据绑定控件的外观和行为。您可以根据不同的条件或数据值显示不同的控件或 HTML 元素,或者根据用户的权限隐藏或禁用特定的控件。

     

    1. "server" ID="GridView1" AutoGenerateColumns="false">
    2. "Name">
    3. <%# Eval("Name") %>
    4. "Email">
    5. "mailto:<%# Eval("Email") %>"><%# Eval("Email") %>
    6. "server" ID="EditButton" Text="Edit" CommandName="Edit" CommandArgument='<%# Eval("ID") %>' />

    上述示例中,我们使用  定义了一个名为 "Name" 的列,其中使用 <%# Eval("Name") %> 数据绑定表达式显示了数据源中的 "Name" 字段的值。类似地,我们还定义了一个名为 "Email" 的列,其中使用  标记创建一个邮箱链接,并使用 <%# Eval("Email") %> 数据绑定表达式显示了 "Email" 字段的值。最后,我们在第三列中定义了一个编辑按钮,使用  控件,并使用 <%# Eval("ID") %> 数据绑定表达式将 "ID" 字段的值作为命令参数传递。

    4.数据绑定事件OnRowDataBound="gv_RowDataBound"

    OnRowDataBound 是一个事件属性,用于在 GridView 控件的每一行绑定到数据源后引发事件。通过在 GridView 控件上设置 OnRowDataBound 属性,您可以指定一个事件处理程序方法,在每一行数据绑定时执行自定义逻辑。

    OnRowDataBound 的详细用法如下:

    1. 在 ASPX 页面中,找到您的 GridView 控件,并将 OnRowDataBound 属性设置为一个事件处理程序方法的名称,例如 OnRowDataBound="gv_RowDataBound"。

    2. 在代码后台(例如在 ASPX.cs 或 ASPX.vb 文件中),编写一个与事件处理程序方法名称相匹配的方法。例如,如果您设置了 OnRowDataBound="gv_RowDataBound",则编写一个名为 gv_RowDataBound 的方法。

    3. 在事件处理程序方法中,您可以访问 GridView 的每一行和单元格,并执行自定义逻辑。您可以使用 e.Row 属性来访问当前的行对象,并使用 e.Row.Cells 属性来访问当前行的单元格对象。

    以下是一个示例,展示了 OnRowDataBound 的用法:

    ASPX 页面:

    1. <asp:GridView runat="server" ID="GridView1" OnRowDataBound="gv_RowDataBound">
    2. asp:GridView>

    代码后台(ASPX.cs 或 ASPX.vb 文件):

    1. protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
    2. {
    3. if (e.Row.RowType == DataControlRowType.DataRow)
    4. {
    5. // 在这里执行您的逻辑,例如根据特定条件修改单元格的样式或值
    6. // 您可以使用 e.Row.Cells 来访问当前行的单元格对象
    7. }
    8. }

    在上述示例中,我们在 GridView 控件中设置了 OnRowDataBound 属性为 gv_RowDataBound,并在代码后台编写了一个名为 gv_RowDataBound 的方法。在该方法中,我们通过检查 e.Row.RowType 属性,确定当前行是否为数据行,然后可以访问该行的单元格对象并执行自定义逻辑。

    OnRowDataBound 的优点和用途包括:

    1. 动态修改行的样式:通过在 OnRowDataBound 事件处理程序中访问行和单元格对象,您可以根据特定条件动态修改行的样式。例如,根据数据值的不同,您可以更改行的背景颜色、字体颜色等。

    2. 操作行的数据:在 OnRowDataBound 事件处理程序中,您可以访问行的数据,并根据需要执行操作。例如,您可以根据数据值的不同,在行中显示不同的控件或文本。

    3. 处理行级操作:通过在 OnRowDataBound 事件处理程序中添加按钮或链接,并为其添加事件处理程序,您可以为每一行提供行级操作。例如,您可以为每一行添加一个“编辑”按钮,并在点击按钮时执行相应的操作。

    4. 动态绑定数据:在 OnRowDataBound 事件处理程序中,您可以根据需要动态绑定数据到行的控件或文本。例如,您可以根据数据值的不同,将不同的文本绑定到行中的标签或文本框。

    通过使用 OnRowDataBound,您可以在每一行数据绑定时执行自定义逻辑,从而实现更灵活和个性化的 GridView 控件。

    5.行命令事件OnRowCommand

    当您在 GridView 控件的行中的命令按钮(如按钮或链接按钮)被点击时,可以使用 OnRowCommand 事件属性来引发事件。通过在 GridView 控件上设置 OnRowCommand 属性,您可以指定一个事件处理程序方法,在命令按钮被点击时执行自定义逻辑。

    OnRowCommand 的详细用法如下:

    1. 在 ASPX 页面中,找到您的 GridView 控件,并将 OnRowCommand 属性设置为一个事件处理程序方法的名称,例如 OnRowCommand="gv_RowCommand"。

    2. 在代码后台(例如在 ASPX.cs 或 ASPX.vb 文件中),编写一个与事件处理程序方法名称相匹配的方法。例如,如果您设置了 OnRowCommand="gv_RowCommand",则编写一个名为 gv_RowCommand 的方法。

    3. 在事件处理程序方法中,您可以根据需要访问 GridView 的行、命令和数据,并执行自定义逻辑。您可以使用 e.CommandName 属性来获取命令的名称,使用 e.CommandArgument 属性来获取命令的参数,使用 e.Row 属性来访问当前的行对象。

    以下是一个示例,展示了 OnRowCommand 的用法:

    ASPX 页面:

    1. <asp:GridView runat="server" ID="GridView1" OnRowCommand="gv_RowCommand">
    2. <!-- GridView 的列定义 -->
    3. <Columns>
    4. <asp:ButtonField ButtonType="Button" CommandName="Edit" Text="Edit" CommandArgument='<%# Eval("ID") %>' />
    5. <asp:ButtonField ButtonType="Button" CommandName="Delete" Text="Delete" CommandArgument='<%# Eval("ID") %>' />
    6. </Columns>
    7. </asp:GridView>

    代码后台(ASPX.cs 或 ASPX.vb 文件):

    1. protected void gv_RowCommand(object sender, GridViewCommandEventArgs e)
    2. {
    3. if (e.CommandName == "Edit")
    4. {
    5. // 执行编辑操作
    6. // 您可以使用 e.CommandArgument 获取命令的参数
    7. // 您可以使用 e.Row 获取当前的行对象
    8. string id = e.CommandArgument.ToString();
    9. // 根据 id 执行编辑逻辑
    10. }
    11. else if (e.CommandName == "Delete")
    12. {
    13. // 执行删除操作
    14. // 您可以使用 e.CommandArgument 获取命令的参数
    15. // 您可以使用 e.Row 获取当前的行对象
    16. string id = e.CommandArgument.ToString();
    17. // 根据 id 执行删除逻辑
    18. }
    19. }

    在上述示例中,我们在 GridView 控件中设置了 OnRowCommand 属性为 gv_RowCommand,并在代码后台编写了一个名为 gv_RowCommand 的方法。在该方法中,我们根据 e.CommandName 的值判断点击的是哪个命令按钮,并根据需要执行相应的操作。我们可以使用 e.CommandArgument 属性获取命令的参数,使用 e.Row 属性获取当前的行对象。

    CommandArgument 是一个命令按钮的参数,可以通过 CommandArgument='<%# Eval("ID") %>' 的方式将行中的数据字段绑定到命令按钮的参数上。在事件处理程序方法中,您可以使用 e.CommandArgument 获取命令按钮的参数,从而根据需要执行相关操作。

    OnRowCommand 的优点和用途包括:

    1. 处理行级操作:通过在 OnRowCommand 事件处理程序中判断命令的名称,并根据需要执行相应的操作,您可以为每一行提供行级操作。例如,您可以为每一行添加一个“编辑”按钮和一个“删除”按钮,并在点击按钮时执行相应的编辑或删除操作。

    2. 访问行和数据:在 OnRowCommand 事件处理程序中,您可以访问行的数据,并根据需要执行操作。例如,您可以根据数据值的不同,在行中显示不同的控件或文本。

    3. 动态绑定数据:通过使用 CommandArgument,您可以将行中的数据字段绑定到命令按钮的参数上,从而实现动态绑定数据的功能。例如,您可以根据数据值的不同,将不同的参数传递给事件处理程序方法。

  • 相关阅读:
    PaddleOCRv3之三:rec识别部分训练
    独热编码和自然数编码
    攻防演练-紫队视角下的实战攻防演练组织
    悲催,放到 Map 中的元素取不出来了!!
    筑牢安全生产防线,工厂人员定位报警系统护航企业发展
    练习 1
    System.gc 之后到底发生了什么 ?
    走进Web3万链互联:跨链&跨层、锁定+铸造与哈希时间锁定
    App移动端测试(5)—— adb命令【续】
    JVM垃圾回收——垃圾收集器(一)
  • 原文地址:https://blog.csdn.net/2203_75593971/article/details/132245575
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号