首页 新闻 搜索 专区 学院

关于datagridView的数据列绑定问题

0
悬赏园豆:10 [已解决问题] 解决于 2008-11-17 16:02

winForm中,注意,不是在webForm中。

数据表table(id->int,status->int(0,1),taskName->varchar(20)),在将数据进行绑定在dataGridView中的时候,我想把status为1的单元格转换为‘已完成’,并且以绿色字体显示,status为0的单元格我就转换为‘未完成’,并且以红色显示。可是,在winform下的datagridView没有RowDataBound这个事件,倒是不认识的事件一大堆。

请问高手们,如果需要完成我的需求,需要怎么实现,?

 

天堂口的主页 天堂口 | 小虾三级 | 园豆:514
提问于:2008-11-17 11:05
< >
分享
最佳答案
0

你可以使用CellFormatting事件完成你的需求。如下:

Code
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 1 /*status列的Index*/)
{
if (object.Equals(e.Value, 0))
{
e.Value
= "未完成";
e.CellStyle.ForeColor
= Color.Red;
}
else
{
e.Value
= "已完成";
e.CellStyle.ForeColor
= Color.Green;
}
}
}

因为WinForm开发没有Postback的需要,因此,很多东西都可以实现的更简单直接一些。

Colin Han | 老鸟四级 |园豆:3041 | 2008-11-17 13:26
其他回答(4)
0

请你把代码附上!不然没法给你正确的回到!

子夜星辰 | 园豆:1613 (小虾三级) | 2008-11-17 11:19
0

这个问题很多的解决方案的,你去google去搜索一下GridView72绝技,里面就有你问题的答案。

金鱼 | 园豆:1090 (小虾三级) | 2008-11-17 12:32
0

方法一:
<asp:TemplateField SortExpression="Status" HeaderText="Status">
     <ItemTemplate>
     <%# (Eval("Status").ToString()=="1")?"已完成":"未完成"%>
  </ItemTemplate>
</asp:TemplateField>

方法二:

<asp:TemplateField SortExpression="Status" HeaderText="Status">
    <ItemTemplate>
     <%# Format(Eval("Status"))%>
  </ItemTemplate>
</asp:TemplateField>
 
 在后置cs文件中,写一个Protected或Public方法Format(object obj),使用这个方法来转换数值1或0为“已完成”或“未完成”。

上不了岸的鱼 | 园豆:4611 (老鸟四级) | 2008-11-17 12:47
0

窗体上,放了一个DataGridView 和 一个BindingSource控件

Form1_Load事件绑定数据

DataGridView1_CellFormatting事件设置格式

Code

 

vs2008测试通过

一杰 | 园豆:790 (小虾三级) | 2008-11-17 12:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册