GridView自定义表头、复合表头、绑定

1、自定义表头

//自定义表头
protected void create(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        TableCellCollection tcHeader = e.Row.Cells;
        //清除自动生成的表头
        tcHeader.Clear();

        //查询数据库字段生成表头
        StringBuilder strSQL = new StringBuilder();
        strSQL.Clear();
        strSQL.Append("select name from syscolumns where id = object_id(N'data_table');");
        string strsql = strSQL.ToString();
        DataTable dt = DB.GetDataBySQL(strsql);

        //自动添加表头
        int count = dt.Rows.Count;
        for (int i = 0; i < count; i++)
        {
            string strdt = dt.Rows[i][0].ToString();
            tcHeader.Add(new TableHeaderCell());
            tcHeader[i].Text = strdt;
        }
    }
}

2、复合表头

    //复合表头
    protected void create(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Header)
        {
            TableCellCollection tcHeader = e.Row.Cells;
            //清除自动生成的表头
            tcHeader.Clear();

            tcHeader.Add(new TableHeaderCell());
            tcHeader[0].RowSpan = 2;
            tcHeader[0].Text = "姓名";

            tcHeader.Add(new TableHeaderCell());
            tcHeader[1].RowSpan = 2;
            tcHeader[1].Text = "班级";

            tcHeader.Add(new TableHeaderCell());
            tcHeader[2].ColumnSpan = 3;
            tcHeader[2].Text = "成绩";

            tcHeader.Add(new TableHeaderCell());
            tcHeader[3].RowSpan = 2;
            tcHeader[3].Text = "总排名</th></tr><tr>";

            tcHeader.Add(new TableHeaderCell());
            tcHeader[4].Text = "语文";
            tcHeader[4].BackColor = System.Drawing.ColorTranslator.FromHtml("#1CB89E");     //设置单元格背景颜色

            tcHeader.Add(new TableHeaderCell()); 
            tcHeader[5].Text = "数学";
            tcHeader[5].BackColor = System.Drawing.ColorTranslator.FromHtml("#1CB89E");     //设置单元格背景颜色

            tcHeader.Add(new TableHeaderCell()); 
            tcHeader[6].Text = "英语"; 
            tcHeader[6].BackColor = System.Drawing.ColorTranslator.FromHtml("#1CB89E"); //设置单元格背景颜色 
        }
    }


3、数据绑定

    //GridView内容绑定
    public void GridViewBind()
    {
        StringBuilder strSQL = new StringBuilder();
        strSQL.Clear();
        strSQL.Append("select * from data_table");
        string strsql = strSQL.ToString();
        GridView1.DataSource = DB.GetDataBySQL(strsql);
        GridView1.DataBind();

    }

前台页面

方法一:

<asp:GridView runat="server" CssClass="dropdownlist" ID="GridView1" AutoGenerateColumns="false" CellPadding="4" Width="100%" ForeColor="#333333" GridLines="Both" AllowPaging="True" RowStyle-HorizontalAlign="Center" OnRowCreated="create">
     <Columns>
	 <asp:BoundField DataField="姓名" HeaderText="姓名" />
	 <asp:BoundField DataField="班级" HeaderText="班级" />
	 <asp:BoundField DataField="语文" HeaderText="语文" />
	 <asp:BoundField DataField="数学" HeaderText="数学" />
	 <asp:BoundField DataField="英语" HeaderText="英语" />
	 <asp:BoundField DataField="总排名" HeaderText="总排名" />
     </Columns>
	
     <%--定义表头的样式属性--%>
     <HeaderStyle BackColor="#1CB89E" HorizontalAlign="Center" />
     <%--定义表中的行的样式属性--%>
     <RowStyle Font-Size="14px" BackColor="#5BD5C1" />
     <%--定义表中每隔一行的样式属性--%>
     <AlternatingRowStyle BackColor="#e6e6e6" />

</asp:GridView>


方法二:

<asp:GridView runat="server" CssClass="dropdownlist" ID="GridView1" AutoGenerateColumns="false" CellPadding="4" Width="100%" ForeColor="#333333" GridLines="Both" AllowPaging="True" RowStyle-HorizontalAlign="Center" OnRowCreated="create">
    <Columns>
	<asp:TemplateField>
	     <HeaderTemplate>姓名</HeaderTemplate>
	     <ItemTemplate><%# Eval("姓名") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>班级</HeaderTemplate>
	     <ItemTemplate><%# Eval("班级") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>语文</HeaderTemplate>
	     <ItemTemplate><%# Eval("语文") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>数学</HeaderTemplate>
	     <ItemTemplate><%# Eval("数学") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>英语</HeaderTemplate>
	     <ItemTemplate><%# Eval("英语") %> </ItemTemplate>
	</asp:TemplateField>
	<asp:TemplateField>
	     <HeaderTemplate>总排名</HeaderTemplate>
	     <ItemTemplate><%# Eval("总排名") %> </ItemTemplate>
	</asp:TemplateField>
    </Columns>
	
    <%--定义表头的样式属性--%>
    <HeaderStyle BackColor="#1CB89E" HorizontalAlign="Center" />
    <%--定义表中的行的样式属性--%>
    <RowStyle Font-Size="14px" BackColor="#5BD5C1" />
    <%--定义表中每隔一行的样式属性--%>
    <AlternatingRowStyle BackColor="#e6e6e6" />

</asp:GridView>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章