gridview绑定数据mysql_GridView中绑定数据字段时可做的几种操作方法

本文介绍了在GridView中绑定数据时,如何在值为'Y'显示'已提交',值为'N'显示'未提交'的三种方法:1. 数据库中使用CASE...WHEN;2. 利用GridView模板和事件;3. 使用RowDataBound事件进行条件判断和样式修改。示例代码包括改变字体颜色、背景颜色以及处理父窗体与子窗体间的交互。
摘要由CSDN通过智能技术生成

在从数据库中取值绑定到 Gridview 时,在数据库中可能某些字段是数字或是一些标志位,在把它们绑定到GridView 后也会显示到数字,例如 IS_SUBMIT 字段,标志某条数据是否已被提交      "Y"      已提交      "N"      未提交

如果需要在值为 "Y" 时显示“已提交”,而在值为 "N" 时显示为“未提交”该怎么办呢?有以下几种方法

1. 在数据库中做手脚,利用 Case..........When

SELECT(CASE RoleValueIDWHEN 'Y' THEN '已提交'WHEN 'N' THEN '未提交'ELSE '未知'END) AS RoleNameFROM UserRole

这种方法很常用,对程序也不会造成很大影响,可是如果在程序上的实体层所对应构造函数的数据类型不是字符类型的话(一般往往可能是int),那这里就会出现数据类型不对应的问题。

2. 使用gridview中的模板配合gridview中的相关事件

3. RowDataBound事件

if (e.Row.RowType == DataControlRowType.DataRow)      {            switch (e.Row.Cells[3].Text.Trim())            {                  case "Y":                        e.Row.Cells[3].Text = "已提交";                        break;                  case "N":                        e.Row.Cells[3].Text = "未提交";                        break;            }      }

利用RowDataBound还可以改变gridview很多东西

1.实现字体颜色改变

前台用超链接列           

后台:

protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)      {            if (e.Row.RowType == DataControlRowType.DataRow)            {                  HyperLink hlf = (HyperLink)e.Row.Cells[1].Controls[0];                  if (Convert.ToDateTime(gridview1.DataKeys[e.Row.RowIndex].Value.ToString()) > =   DateTime.Now)                  {                        hlf.ForeColor= System.Drawing.Color.Red;// change color                  }

}      }

2.判断特定条件,更改单元格背景颜色

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)      {    //数据加载时发生            if (e.Row.RowType == DataControlRowType.DataRow)            {    //判断是否是数据行                  if (e.Row.Cells[8].Text == "USA")                  {   //判断第9列值是否为"USA"                        //e.Row.BackColor = System.Drawing.Color.Red;                        e.Row.Cells[8].BackColor = System.Drawing.Color.Red;                  }            }      }

3.父窗体中调用子窗体的gridview

在父窗体中调用子窗体的gridview值(简单的页面交互):

父窗体代码:

注:单机事件用window.open打开新窗体并获得焦点     

                                          在按钮中调用:                        子窗体代码:

注:girdview中e.Row.Attributes增加单击属性,ReKey并将此行第三列的值传过去      protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)      {            if(e.Row.RowType==DataControlRowType.DataRow)            {                  e.Row.Attributes.Add("ondblclick", "ReKey('" + e.Row.Cells[2].Text+"')");                  //e.Row.Attributes["style"] = "Cursor:hand";                  // //键盘事件                  //e.Row.Attributes.Add("OnKeyDown", "GridViewItemKeyDownEvent('" + e.Row.Cells[1].Text + "')");            }      }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值