我的DataGrid是动态创建列的!但表头有些要合并,合并的条件我就想通过字段名来判断!请问怎么实现这个功能,比较急谢谢各位了!

解决方案 »

  1.   

    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
            {
                if(e.Item.ItemType == ListItemType.Header)
                {
                    for(int i=0;i<e.Item.Cells.Count-1;i++)
                    {
                        string tmp = e.Item.Cells[i].Text;
                        if(tmp == "AAA")
                        {
                            e.Item.Cells[i].ColumnSpan = 2;
                            e.Item.Cells[i+1].Visible = false;
                        }
                    }            }
            }
      

  2.   

    谢谢  Eddie005(♂) 暴赱 『零零伍』(︶︵︶) 我的表头的两行的,形式是这样的:
    |    AAA     |
    |AAA1  |AAA2 |该怎么实现呢?
      

  3.   

    if (e.Item.ItemType == ListItemType.Header)
    {
    e.Item.Cells[0].RowSpan = 2;
    e.Item.Cells[0].HorizontalAlign = HorizontalAlign.Center;
    e.Item.Cells[0].Text = "分公司";
    e.Item.Cells[2].RowSpan = 2;
    e.Item.Cells[3].ColumnSpan = 3;
    e.Item.Cells[3].HorizontalAlign = HorizontalAlign.Center;
    e.Item.Cells[3].Text = "其中";
    e.Item.Cells[4].Visible=false;
    e.Item.Cells[5].Visible =false;
    e.Item.Cells[6].RowSpan = 2;
    e.Item.Cells[7].ColumnSpan = 2;
    e.Item.Cells[7].HorizontalAlign = HorizontalAlign.Center;
    e.Item.Cells[7].Text = "其中";
    e.Item.Cells[8].Visible = false;
    }
    else
    {
    if (e.Item.Cells[0].Text == "分公司") 
    {
    e.Item.Cells[0].Visible = false;
    }
    if (e.Item.Cells[2].Text == "长途话务量合计")
    {
    e.Item.Cells[2].Visible = false;
    }
    if (e.Item.Cells[6].Text == "除去116、95和960后的长途话务量合计")
    {
    e.Item.Cells[6].Visible = false;
    }
    if (e.Item.Cells[3].Text == "116")
    {
    e.Item.Cells[3].BackColor = System.Drawing.Color.LightGreen;
    }
    if (e.Item.Cells[4].Text == "960")
    {
    e.Item.Cells[4].BackColor = System.Drawing.Color.LightGreen;
    }
    if (e.Item.Cells[5].Text == "95")
    {
    e.Item.Cells[5].BackColor = System.Drawing.Color.LightGreen;
    }
    if (e.Item.Cells[7].Text =="IP长途")
    {
    e.Item.Cells[7].BackColor = System.Drawing.Color.LightGreen;
    }
    if (e.Item.Cells[8].Text == "普通长途")
    {
    e.Item.Cells[8].BackColor = System.Drawing.Color.LightGreen;
    }
    }
      

  4.   

    多层表头就看这里:http://dev.csdn.net/develop/article/48/48988.shtm
      

  5.   

    //用来判断两个(上下)Pager的位置
    private bool upPager  = true;
    private void dgDoubleHeader_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    //获取DataGrid控件中项的类型
    ListItemType ItemType = e.Item.ItemType;
    //判断是否是页导航项
    if (ItemType == ListItemType.Pager) 

    //判断是否是第一个页导航项
    if (upPager) 
    {
    //根据DataGrid控件的项定义单元格对象
    TableCell cellPersonal = (TableCell) e.Item.Controls[0];
    //移出该单元格内的所有控件
    cellPersonal.Controls.Clear();
    //设置单元格对象的背景色
    cellPersonal.BackColor = Color.Orange; 
    //设置单元格对象的前景色
    cellPersonal.ForeColor = Color.Black; 
    //设置该单元格对象跨3列
    cellPersonal.ColumnSpan = 2; 
    //设置该单元格对象的对齐方式为居中
    cellPersonal.HorizontalAlign = HorizontalAlign.Center; 
    //添加单元格内的文本内容
    cellPersonal.Controls.Add(new LiteralControl("姓名")); 
    //定义单元格对象
    TableCell cellWork = new TableCell();
    //设置单元格对象的背景色
    cellWork.BackColor = Color.OrangeRed;
    //设置单元格对象的前景色
    cellWork.ForeColor = Color.Black;
    //设置该单元格对象跨2列
    cellWork.ColumnSpan = 3; 
    //设置该单元格对象的对齐方式为居中
    cellWork.HorizontalAlign = HorizontalAlign.Center;
    //添加单元格内的文本内容
    cellWork.Controls.Add(new LiteralControl("联系方式"));
    //在该项的控件集合中添加单元格对象
    e.Item.Controls.Add(cellWork);
    //改变Pager标志
    upPager = false; 
    }
    }
    } private void dgDoubleHeader_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    //改变Pager标志的值使其可以在每次触发分页事件时都设置标题头
    upPager = true; 
    //设置新的页面索引值
    dgDoubleHeader.CurrentPageIndex = e.NewPageIndex;
    //重新进行数据绑定
    DataGridDataBind();
    }
      

  6.   

    xuyiazl() 给的方法还是不行啊! 表头还只是一行阿!
    我要得形式是:|   AAA   |   BBB   |   ccc   |   ddd   |
    |aaa1|aaa2|bbb1|bbb2|         |ddd1|ddd2|就是说有的字段要合并而有的不需要合并!
    字段是动态创建的,合并也要动态合并!
      

  7.   

    job吗? 是就问问同事,不是就丢下吧~对新手来说这样的问题没什么价值~
      

  8.   

    Eddie005(♂) 暴赱 『零零伍』(︶︵︶)   你好!
    我是为了job,可我也没有可问得同事,就得我一个人弄,我也没有办法!还有,这个问题为什么对新手来说没有价值阿?