日期:2014-05-19  浏览次数:20460 次

DataGrid的问题.
我有这样一组数据:
成鑫公司   0202   4-2煤下分层110材料道   瓦斯             0.0               传感器故障  
成鑫公司   0201   4-2煤下分层105材料道   瓦斯             0.06             正常  
成鑫公司   0103   西总回风                           瓦斯             0.46             传感器故障  
成鑫公司   0101   西总回风                           一氧化碳     0.77             正常  
成鑫公司   0104   风速                                   风速             5.85             正常  
成鑫公司   0201   4-2煤下分层105材料道   风速             5.85             正常  

我想实现这样的功能:  
如果第4列的数据为瓦斯,则第5列的数值后面加上单位%,如果为一氧化碳单位加上ppm
显示后的数据应为:  

成鑫公司   0202   4-2煤下分层110材料道   瓦斯             0.0%               传感器故障  
成鑫公司   0201   4-2煤下分层105材料道   瓦斯             0.06%             正常  
成鑫公司   0103   西总回风                           瓦斯             0.46%             传感器故障  
成鑫公司   0101   西总回风                           一氧化碳     0.77ppm           正常  
成鑫公司   0104   风速                                   风速             5.85m/s             正常  
成鑫公司   0201   4-2煤下分层105材料道   风速             5.85m/s             正常  
我在DataGrid1_ItemDataBound()方法中写了如下代码:
if(e.Item.ItemIndex> 0)
{
    if(DataGrid1.Items[e.Item.ItemIndex-1].Cells[3].Text== "瓦斯 ")
{
DataGrid1.Items[e.Item.ItemIndex-1].Cells[4].Text=DataGrid1.Items[e.Item.ItemIndex-1].Cells[4].Text+ "% ";
}
if(DataGrid1.Items[e.Item.ItemIndex-1].Cells[3].Text== "一氧化碳 ")
{
DataGrid1.Items[e.Item.ItemIndex-1].Cells[4].Text=DataGrid1.Items[e.Item.ItemIndex-1].Cells[4].Text+ "ppm ";
}
if(DataGrid1.Items[e.Item.ItemIndex-1].Cells[3].Text== "风速 ")
{
DataGrid1.Items[e.Item.ItemIndex-1].Cells[4].Text=DataGrid1.Items[e.Item.ItemIndex-1].Cells[4].Text+ "m/s ";
}
}
最后运行结果显示:最后一列数据的单位没有加上,这是什么原因啊?

------解决方案--------------------
if(e.Item.ItemIndex> 0)
{
if(e.Item.Cells[3].Text== "瓦斯 "))
{
e.Item.Cells[4].Text = e.Item.Cells[4].Text + "% ";
}
else if(e.Item.Cells[3].Text== "一氧化碳 ")
{
e.Item.Cells[4].Text = e.Item.Cells[4].Text + "ppm ";
}
else
{
e.Item.Cells[4].Text = e.Item.Cells[4].Text + "m/s ";
}
}