zoukankan      html  css  js  c++  java
  • GridView中绑定数据字段时可做的几种操作方法

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

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

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

          SELECT 
          (CASE RoleValueID
                WHEN 'Y' THEN '已提交'
                WHEN 'N' THEN '未提交'
                ELSE '未知'
          END) AS RoleName
          FROM UserRole

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

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

          <asp:Button   ID= "Button2 "   runat= "server "   CommandArgument= ' <%#   Eval( "id ")   %> '   CommandName= "IsPass "   Text= ' <%#   Eval( "IS_SUBMIT").ToString()   ==   "Y"   ?   "已提交 "   :   "未提交 "   %> ' />

    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.实现字体颜色改变

          前台用超链接列 
          <asp:HyperLinkField DataNavigateUrlFormatString="Detail.aspx" Text="点击查看"> 
          </asp:HyperLinkField>

          后台:

          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打开新窗体并获得焦点
          <head>
          <script language=javascript>...
                function openpage(htmlurl) 
                {
                      var newwin=window.open(htmlurl,"newWin","toolbar=no,location=no,directories=no,status=no,scrollbars=yes,menubar=no,resizable=yes,top=100,left=200,width=650,height=300");
                      newwin.focus();
                      return false;
                }
          </script>
          </head>
          <body>
                <input type=text id="name" />
                在按钮中调用:
                <input type=button value="调用" onclick="return openpage('GridViewClientClick.aspx');" />
          </body>

          子窗体代码:

          注: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 + "')");
                }
          }

  • 相关阅读:
    Linux常用软件 分类: arm-linux-Ubuntu 2013-07-22 16:28 301人阅读 评论(0) 收藏
    Linux系统信息查看命令大全 分类: arm-linux-Ubuntu 2013-07-22 16:28 302人阅读 评论(0) 收藏
    解决VC6下调不出MSDN的问题! 分类: VC++ 2013-07-22 16:28 297人阅读 评论(0) 收藏
    Shell编程基础 分类: arm-linux-Ubuntu 2013-07-22 16:28 189人阅读 评论(0) 收藏
    linux内核体系结构 分类: arm-linux-Ubuntu 2013-07-22 16:28 359人阅读 评论(0) 收藏
    Linux分区和挂载(mount命令的学习) 分类: arm-linux-Ubuntu 2013-07-22 16:28 265人阅读 评论(0) 收藏
    重新编译Linux内核必要性及其准备工作 分类: arm-linux-Ubuntu 2013-07-22 16:28 288人阅读 评论(0) 收藏
    ubuntu11.04启动 及虚拟文件系统 分类: arm-linux-Ubuntu 2013-07-22 16:28 369人阅读 评论(0) 收藏
    VxWorks 任务 分类: vxWorks 2013-07-22 16:28 646人阅读 评论(0) 收藏
    vxWorks 命令 分类: vxWorks 2013-07-22 16:28 544人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/waynewjp/p/1561424.html
Copyright © 2011-2022 走看看