datagrid()_propertygrid控件

datagrid()_propertygrid控件鉴于在本版收到好多asp.net初学者因为不了解ItemDataBound事件的用法而提出问题,特写此实例教程,以飨众友。实例:现要把如下的数据集(在查询管理器的查出来的结果集)绑定到DataGrid:绑定结果为——然而现在要实现如下效果:一、第一列的产品名是一个链接,它要求链接目标为:prod.aspx?name={产品名称}&spec={产品规格}二、当产品单价>=1元时,将其单价显示为红

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

鉴于在本版收到好多asp.net初学者因为不了解ItemDataBound事件的用法而提出问题,特写此实例教程,以飨众友。

实例:现要把如下的数据集(在查询管理器的查出来的结果集)绑定到DataGrid:


datagrid()_propertygrid控件

绑定结果为——


datagrid()_propertygrid控件

然而现在要实现如下效果:

一、第一列的产品名是一个链接,它要求链接目标为:

prod.aspx?name={产品名称}&spec={产品规格}

二、当产品单价>=1元时,将其单价显示为红色;

三、当产品单价为0时,将其整行的背景显示为黄色;

结果如下图:


datagrid()_propertygrid控件

回想我们以前用ASP编程的时候,对于要生成数据页面的做法,我们是事必亲躬地为生成的每一行表格编写HTML代码,可是我遇到好多初学.net的人抱怨,.net中的Datagrid使数据页面的生成变得非常方便,但是对于特殊要求却无能为力。

其实并非如此,对于asp中能实现的效果,asp.net中照样能够非常方便地实现,针对上述要求,只需为DataGrid的ItemDataBound事件编写代码即可。

DataGrid每生成一行,都会执行ItemDataBound事件一次,从上图中看到,这个DataGrid共有12行(包括10数据行,一个页眉行,和一个分页行)。则这里ItemDataBound事件将会被执行12次。而事件中的e参数的e.Item.ItemType则可用于判断当前正在绑定的行是什么行,它是一个枚举,见下图:


datagrid()_propertygrid控件

(注:在DataGrid的属性生成器中,第一列为超级链接列,而且不必填写“Url字段”和“Url格式字符串”两个属性值)

当然,我们无需理会生成页眉和分页行的情况,但当绑定数据集的行时,该行有可能是普通数据行、替换行、选定行、处于编辑状态的行。

参数e的e.item指向当前正在绑定的行
而e.item.cells集合指向当前正在绑定的行的每一个单元格。


由此,我们已给能够为上述要求编写代码了——

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

Select Case e.Item.ItemType

Case ListItemType.AlternatingItem, ListItemType.EditItem, ListItemType.Item, ListItemType.SelectedItem

Dim drv As DataRowView = e.Item.DataItem

Dim hlk As HyperLink = e.Item.Cells(0).Controls(0)

hlk.NavigateUrl = “prod.aspx?name=” & drv(“prod_name”) & “&spec=” & drv(“prod_spec”)

If drv(“price”) >= 1 Then

e.Item.Cells(2).ForeColor = Color.Red

End If

If drv(“price”) = 0 Then

e.Item.BackColor = Color.Yellow

End If

End Select

End Sub

由于程序简单,所以这里不再提供C#的代码。

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182317.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • LeetCode刷题笔记-回溯法-括号生成

    LeetCode刷题笔记-回溯法-括号生成

    2021年7月9日
    77
  • c++ cin输入空格_cin输入string遇到空格

    c++ cin输入空格_cin输入string遇到空格文章目录一、cin>>用法1:输入一个数字或字符用法2:接收一个字符串,遇“空格”、“TAB”、“回车”就结束二、cin.getline()用法:接收一个字符串,可以接收空格并输出延伸:三、getline()用法:接收一个字符串,可以接收空格并输出,需包含“#include”四、注意的问题一、cin>>用法1:输入一个数字或字符#include using name……

    2022年8月18日
    7
  • sublime text3 激活码【注册码】

    sublime text3 激活码【注册码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月18日
    100
  • GC算法[通俗易懂]

    GC算法[通俗易懂]JVM(JavaVirtualMachine) GC是什么?频繁收集Young区 较少收集Old区 基本不动Perm区  JVM在进行GC时,并非每次都对上面三个内存区域一起回收的,大部分时候回收的都是指新生代,因此GC按照回收的区域又分了两种类型,一种是普通GC(minorGC),一种是全局GC(majorGCorFullGC) 普通GC(…

    2022年6月29日
    28
  • 阿里云服务器怎样开放端口

    阿里云服务器怎样开放端口1、登录阿里云官方2、进入控制台3、在控制台里点击产品与服务——云服务器ECS4、在云服务器ECS选项里点击网络和安全——安全组5、可以自己创建安全组,也可以现有的配置规则6、然后点击右上方的添加安全组规则7、填上端口号,允许的ip地址,点击确定就可以了端口例如:8001/8001授权对象:0.0.0.0/0…

    2022年9月26日
    2
  • Android 查看Android版本的方法

    Android 查看Android版本的方法查看Android版本的方法

    2022年8月6日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号