请教各位:    在DataGrid中每一列的数据类型都不相同,如果是int类型的数据,则该列居中,如果是string类型的,则该列居左,如果是货币类型的则在该值前面家¥号并居右?我写了下面的代码
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
for(i=0;i<e.Item.Cells.Count;i++)
{
    /*temp[i]是我自定的一个string[],用来保存DataSet中每个字段的数据类型。
    switch(temp[i])
    {
case "System.Int32":
    e.Item.Cells[i].Text = "<p align=center>" + e.Item.Cells[i].Text;
    break;
case "System.String":
             e.Item.Cells[i].Text = "<p align=left>" + e.Item.Cells[i].Text;
    break;
default:
    e.Item.Cells[i].Text = "<p align=left>" + e.Item.Cells[i].Text;
    break;
     }    
}
}以上的代码能够正常执行,但是出现了一个意外,就是DataGrid的列标题被改变了,我只想在数据中实现上面的功能,不需要更改列标题,但是这行代码:
e.Item.Cells[i].Text = "<p align=left>" + e.Item.Cells[i].Text;将列标题都给改变了,大家帮我想想办法。

解决方案 »

  1.   


    if ( e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item )
    {
    for(i=0;i<e.Item.Cells.Count;i++)
    {
        /*temp[i]是我自定的一个string[],用来保存DataSet中每个字段的数据类型。
        switch(temp[i])
        {
    case "System.Int32":
        e.Item.Cells[i].Text = "<p align=center>" + e.Item.Cells[i].Text;
        break;
    case "System.String":
                 e.Item.Cells[i].Text = "<p align=left>" + e.Item.Cells[i].Text;
        break;
    default:
        e.Item.Cells[i].Text = "<p align=left>" + e.Item.Cells[i].Text;
        break;
         }    
    } }
      

  2.   

    判断一下是不是数据栏就可以了
    if ( e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item )