• ASP.NET的Gridview实现表头单元格的合并
  • 发布于 2个月前
  • 189 热度
    0 评论

我们一般使用Gridview控件显示列表信息,类似如下这样常见的信息列表:

这是我们常见的列表表头,就跟我们的Excel差不多,但有时候,我们可能需要实现表头的合并,或者把表头的某列拆分成多行,这种时候我们用GridView该怎么实现呢?类似如下这样的效果:

要想实现上面这样的效果,我们就需要在后台的RowCreated事件中实现了,具体代码如下:

   protected void gvPlace_RowCreated(object sender, GridViewRowEventArgs e)
        {
            switch (e.Row.RowType)
            {
                case DataControlRowType.Header:
                    TableCellCollection tcHeader = e.Row.Cells;  //总表头               
                    tcHeader.Clear();                //第一行表头              
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[0].Attributes.Add("rowspan", "3");
                    tcHeader[0].Attributes.Add("class", "bgColor");
                    tcHeader[0].Text = "<div><ul><li>出差目的地</li><li>Destination </li></ul></div>";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[1].Attributes.Add("colspan", "3");
                    tcHeader[1].Text = "<div><ul><li>出差时间</li><li>Duration of travel</li></ul></div>";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[2].Attributes.Add("rowspan", "2");
                    tcHeader[2].Attributes.Add("colspan", "3");
                    tcHeader[2].Attributes.Add("class", "bgColor");
                    tcHeader[2].Text = "<div><ul><li>非自费用餐次数</li><li>Times of meals not paid by yourself</li></ul></div></th></tr><tr class='bgColor'>";
                    tcHeader.Add(new TableHeaderCell());   //第二行表头                    
                    tcHeader[3].Text = "<div><ul><li>出发时间</li><li>From</li></ul></div>";
                    tcHeader[3].Attributes.Add("rowspan", "2");
                    tcHeader[1].Attributes.Add("class", "bgColor");
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[4].Text = "<di><ul><li>返回时间</li><li>To</li></ul></div>";
                    tcHeader[4].Attributes.Add("rowspan", "2");
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[5].Attributes.Add("rowspan", "2");
                    tcHeader[5].Text = "<div><ul><li>天数</li><li>Days</li></ul></div></th></tr><tr class='bgColor'>";
                    tcHeader.Add(new TableHeaderCell());//第三行表头
                    tcHeader[6].Text = "<div><ul><li>早餐次数</li><li>Times of breakfast </li></ul></div>";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[7].Text = "<div><ul><li>午餐次数</li><li>Times of Lunch </li></ul></div>";
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[8].Text = "<div><ul><li>晚餐次数</li><li>Times of Dinner </li></ul></div></th</tr><tr>";
                    break;

            }
        }

用户评论