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>