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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux zip加密压缩「建议收藏」

    Linux zip加密压缩「建议收藏」不加密:zip-r压缩文件.zip待压缩文件加密:zip-r-P’密码’压缩文件.zip待压缩文件

    2022年10月21日
  • centos7 top命令_linux系统top命令

    centos7 top命令_linux系统top命令top命令Linuxtop命令用于实时显示process的动态。top参数详解第一行,任务队列信息**系统当前时间:**13:52:56**系统开机后到现在的总运行时间:**up66

    2022年7月29日
  • Redis 集群搭建

    Redis集群搭建前言最近通过看视频学习了一下Redis,前天使用CentOS7配置了一下Redis4.0.9单机版(相关链接:CentOS7配置Redis4.0.9),今天则通过之前的笔记,视频以及redis官网上集群搭建的教程(https://redis.io/topics/cluster-tutorial)的资料来搭建一下Redis集群。…

    2022年4月7日
  • java获取Date时间的各种方式汇总「建议收藏」

    java获取Date时间的各种方式汇总「建议收藏」1. 常用的时间获取方式public class DateUtils {   /**   * 获取时间戳   * 输出结果:1438692801766   */  @Test  public void getTimeStamp() {    Date date = new Date();    long times = date.getTime();    System.o…

    2022年6月13日
  • IT牛人博客聚合 – Linode日本东京机房速度飞快 编程牛人 技术牛人

    IT牛人博客聚合 – Linode日本东京机房速度飞快 编程牛人 技术牛人为了应对亚太地域快速增加的需求,Linode起头把机房建在亚洲了!第一个Linode亚洲机房选择在日本东京.我测了下,速度比本来在美国加州快多了,应当首要得益于收集延时的削减.所以,我当即开了张SupportTicket将我的VPS迁到了日本.迁完以后,拜候速度飞快!和原来在国内某机房没有感受上的区分.大师可以反馈下你会见的速度是不是有晋升?注:Lino

    2022年7月12日
  • CSRF/XSRF攻击和XSS攻击

    XSS(CrossSiteScripting跨站脚本)。XSS定义的主语是“脚本”,是一种跨站执行的脚本,也就是javascript脚本,指的是在网站上注入我们的javascript脚本,执行非法操作。 CSRF(Cross-siterequestforgery跨站请求伪造,也被称为“OneClickAttack”或者SessionRiding,通常缩写为CSRF或者XSRF,是…

    2022年4月3日

发表回复

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

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