C#编辑GridView的Thead
阅读原文时间:2023年07月11日阅读:2

背景

有这样一个需求,需要更改GridView的Thead,即表头。不只是多行表头,而是任意的内容,可能是一段文字,也可能是一个图片,综合网上的一些资料,大致整理出一些做法。

内容

大致有两种方法

第一种,就是在表头里塞元素,通过后台代码一个个地添加,包括排版样式等等。这样做其实比较麻烦,主要是不直观,不熟悉的话就需要一步步调试。

第二种,就是在前端写出内容,调整样式,放在一个容器里(Div或者Table),注意需要是服务器控件,即需要添加ID,并设定runat="server"。然后在后台获取此容器内容添加到Thead的一行中即可。

现在我们具体来做。

方法一

前端


……

后台

protected void GridView1\_PreRender(object sender, EventArgs e)  
    {  
        if (gvDataList.Rows.Count > )  
        {  
            // 使用<TH>替换<TD>  
            gvDataList.UseAccessibleHeader = true;  
            gvDataList.HeaderRow.TableSection = TableRowSection.TableHeader;  
            gvDataList.FooterRow.TableSection = TableRowSection.TableFooter;

        }  
    }

    protected void GridView1\_RowCreated(object sender, GridViewRowEventArgs e)  
    {  
        switch (e.Row.RowType)  
        {  
            case DataControlRowType.Header:  
                e.Row.BackColor = System.Drawing.Color.White;//去除底色  
                TableCellCollection tcHeader = e.Row.Cells;

                tcHeader.AddAt(, new TableHeaderCell());  
                tcHeader\[\].Text = "表格1";  
                tcHeader\[\].Attributes.Add("colspan", "");  
                tcHeader\[\].Attributes.Add("style", "height:30px;");

                tcHeader.AddAt(, new TableHeaderCell());  
                tcHeader\[\].Text = "表格2";  
                tcHeader\[\].Attributes.Add("colspan", "");  
                tcHeader\[\].Attributes.Add("style", "height:30px;");

                tcHeader.AddAt(, new TableHeaderCell());  
                tcHeader\[\].Text = "表格3";  
                tcHeader\[\].Attributes.Add("colspan", "");  
                tcHeader\[\].Attributes.Add("style", "height:30px;");

                tcHeader.AddAt(, new TableHeaderCell());  
                tcHeader\[\].Text = "表格4</tr><tr>";  
                tcHeader\[\].Attributes.Add("colspan", "");  
                tcHeader\[\].Attributes.Add("style", "text-align:right;height:30px;");  

            break;
}
}

方法二

前端


……

后台

protected void GridView1_PreRender(object sender, EventArgs e)
{
if (gvDataList.Rows.Count > )
{
// 使用替换
gvDataList.UseAccessibleHeader = true;
gvDataList.HeaderRow.TableSection = TableRowSection.TableHeader;
gvDataList.FooterRow.TableSection = TableRowSection.TableFooter;

        }  
    }

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
e.Row.BackColor = System.Drawing.Color.White;//去除底色
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.AddAt(, new TableHeaderCell());
tcHeader[].Attributes.Add("colspan", "");
tcHeader[].Text = "";
HtmlTable demo = TBHead;
tcHeader[].Controls.Add(demo);

                tcHeader.AddAt(, new TableHeaderCell());  
                tcHeader\[\].Text = "</tr><tr style=\\"background-color: #D9EDF7;\\">";  
                break;  
        }  
    }

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章