在winForm中,注意,不是在webForm中。
数据表table(id->int,status->int(0,1),taskName->varchar(20)),在将数据进行绑定在dataGridView中的时候,我想把status为1的单元格转换为‘已完成’,并且以绿色字体显示,status为0的单元格我就转换为‘未完成’,并且以红色显示。可是,在winform下的datagridView没有RowDataBound这个事件,倒是不认识的事件一大堆。
请问高手们,如果需要完成我的需求,需要怎么实现,?
你可以使用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的需要,因此,很多东西都可以实现的更简单直接一些。
请你把代码附上!不然没法给你正确的回到!
这个问题很多的解决方案的,你去google去搜索一下GridView72绝技,里面就有你问题的答案。
方法一:
<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为“已完成”或“未完成”。
窗体上,放了一个DataGridView 和 一个BindingSource控件
Form1_Load事件绑定数据
DataGridView1_CellFormatting事件设置格式
Code
vs2008测试通过