网址大全 | 文章大全 | 精选文摘 | 桌面壁纸 | 站长资源 | 在线手册 | 幽默笑话 | 天气预报 | FLASH    | 歇后语
便民查询 | 成语词典 | 五笔字典 | 新华字典 | 周公解梦 | 在线算命 | 生日密码 | 网络电台 | 网站留言 | 许愿墙
您的位置:首页 >> 文章大全 > 网络编程 > ASP.NET
站内搜索:
网络编程专栏
VB.NETASP
ASP.NETC#
数据库PHP
技巧篇Delphi
相关文章
·.NET已检测到指定的W...
·Asp.Net 学习资源列表...
·ASP.NET设计中的性能...
·提高ASP.Net应用程序...
·Asp.net页面输出到EX...
百度搜索 全网 本站
本类排行 more>>
·关于ASP.NET中Resons...
·用DataReader还是Dat...
·.NET已检测到指定的W...
·asp.net实用的一些代...
·Asp.net页面输出到EX...
·WebMatrix开发ASP.NE...
·DataReader vs DataS...
·DataGrid中由某列的值...
·创建用于 ASP.NET 的...
·创建ASP.NET数据存储...
最新文章 more>>
·《网站配色方案》系列...
·《网站配色方案》系列...
·岳飞传的流程攻略
·百度漂亮 但Google更...
·个人站长的胜利 新网...
·搜搜问问抢不了百度知...
·视频网站接连败退 营...
·曹操传 杨家将传奇 官...
·专家为股民支招:网络...
·优秀站长访谈:个人网...
DataGrid中由某列的值设定行的颜色

[ 作者:yhwebus 来源:CSDN 点击数:96 加入时间:2005-11-18 ]

【双击左键自动滚屏】【图片上滚动鼠标滚轮变焦图片】 【字体:放大 正常 缩小】 字体颜色:
便民查询  中华五千年  世界五千年  万年历  天气预报  周公解梦  脑筋急转弯  在线翻译  电信话费查询
为了实现.Net window DataGrid 的某一行可以根据该行某列的值的内容设定该行颜色的功能.

先贴一个连接,里面有DataGrid很多功能扩充的解决方案Windows Forms Datagrid

不过没有我这个需求的解决方案,最后终于还是在同事的帮助下搞定了.


由某一个单元格的值设定该单元格的颜色的实现我就不贴了,上面的连接里面有解决方案.
下面是由某列的值设定整行颜色的一个解决方案. 关键是在定制的DataGridTextBoxColumn里面添加一个DataView的属性,另外重载Paint() .  
在使用DataGridTextBoxColumn的时候,将DataGrid绑定的DataView赋值给它.

public class public class DataGridColoredTextBoxColumn : DataGridTextBoxColumn
{
  private  System.Data.DataView m_bindDataView;
  public DataView BindingDataView
  {
   get
   {
    return m_bindDataView;
   }
   set
   {
    m_bindDataView = value;
   }
  }

  protected override void Paint(System.Drawing.Graphics g,
   System.Drawing.Rectangle bounds, System.Windows.Forms.CurrencyManager
   source, int rowNum, System.Drawing.Brush backBrush, System.Drawing.Brush
   foreBrush, bool alignToRight)
  {
   // the idea is to conditionally set the foreBrush and/or backbrush
   // depending upon some crireria on the cell value
   // Here, we color anything that begins with a letter higher than 'F'
   try
   {
     //从DataView中取值,"ItemType"为行的名称
     string colValue = this.BindingDataView[rowNum]["ItemType"].ToString();     
     char val = colValue[0];

     if( val > 'F' ) //如果首字母大于 'F'
     {
      backBrush = new SolidBrush(Color.BlueViolet );
      foreBrush = new SolidBrush(Color.White);
     }
   }
   catch(Exception ex)
   {
    //empty catch
   }
   finally
   {
    // make sure the base class gets called to do the drawing with
    // the possibly changed brushes
    base.Paint(g, bounds, source, rowNum, backBrush, foreBrush, alignToRight);
   }
  }

}

使用的例子
DataGridColoredTextBoxColumn colExceptionType = new DataGridColoredTextBoxColumn();
   colItemType.BindingDataView = dtOrderItem.DefaultView; //将table的view赋值
   colItemType.HeaderText =“ItemType”;
   colItemType.MappingName = “ItemType“;
   colItemType.Width = 90;
   colItemType.NullText = "";
   tablestyle.GridColumnStyles.Add(colItemType);



国家纸币  自考信息  度量转换  搜索引擎指南  城市经纬度  脑筋急转弯  各国资料  名言辞典  违章查询
·上一篇文章:创建用于 ASP.NET 的分页程序控件
·下一篇文章:Asp.NET中常用的一些优化性能的方法
百度搜索更多内容:DataGrid中由某列的值设定行的颜色
推荐文档】 【打印文档】 【返回页首】 【关闭窗口