GridView代码生成的表头,为什么不能居中?
问题在注释中
protected void gv_EmployeeP_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { //第一行表头HorizontalAlign="Center" TableCellCollection tcHeader = e.Row.Cells; tcHeader.Clear(); //第一层表头 tcHeader.Add(new TableHeaderCell()); tcHeader[0].Attributes.Add("rowspan", "1"); tcHeader[0].HorizontalAlign = HorizontalAlign.Center;//这一行为什么没起作用??? tcHeader[0].Text = "客服"; tcHeader.Add(new TableHeaderCell()); tcHeader[1].Attributes.Add("colspan", "3"); tcHeader[1].Text = "今日"; tcHeader[1].HorizontalAlign = HorizontalAlign.Center;//这一行为什么没起作用??? tcHeader[1].Font.Bold = true; tcHeader.Add(new TableHeaderCell()); tcHeader[2].Attributes.Add("colspan", "3"); tcHeader[2].Text = "昨日"; tcHeader[2].HorizontalAlign = HorizontalAlign.Center;//这一行为什么没起作用??? tcHeader[2].Font.Bold = true; tcHeader.Add(new TableHeaderCell()); tcHeader[3].Attributes.Add("colspan", "3"); tcHeader[3].HorizontalAlign = HorizontalAlign.Center;//这一行为什么没起作用??? tcHeader[3].Text = "上月</th></tr><tr>";//第二层表头的过度 tcHeader[3].Font.Bold = true; } }
<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Page_Load(object sender, EventArgs e) { System.Data.DataTable dt = new System.Data.DataTable(); System.Data.DataRow dr; dt.Columns.Add(new System.Data.DataColumn("ID", typeof(System.Int32))); dt.Columns.Add(new System.Data.DataColumn("Name0", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("Name1", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("Name2", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("Name3", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("Name4", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("Name5", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("Name6", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("Name7", typeof(System.String))); dt.Columns.Add(new System.Data.DataColumn("Name8", typeof(System.String))); for (int i = 0; i < 8; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "孟子章" + i.ToString(); dr[2] = "孟子章" + i.ToString(); dr[3] = "孟子章" + i.ToString(); dr[4] = "孟子章" + i.ToString(); dr[5] = "孟子章" + i.ToString(); dr[6] = "孟子章" + i.ToString(); dr[7] = "孟子章" + i.ToString(); dr[8] = "孟子章" + i.ToString(); dr[9] = "孟子章" + i.ToString(); dt.Rows.Add(dr); } gv_EmployeeP.DataSource = dt; gv_EmployeeP.DataBind(); } protected void gv_EmployeeP_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { //第一行表头HorizontalAlign="Center" TableCellCollection tcHeader = e.Row.Cells; tcHeader.Clear(); //第一层表头 tcHeader.Add(new TableHeaderCell()); tcHeader[0].Attributes.Add("rowspan", "1"); tcHeader[0].HorizontalAlign = HorizontalAlign.Center;//这一行为什么没起作用??? tcHeader[0].Text = "客服"; tcHeader.Add(new TableHeaderCell()); tcHeader[1].Attributes.Add("colspan", "3"); tcHeader[1].Text = "今日"; tcHeader[1].HorizontalAlign = HorizontalAlign.Center;//这一行为什么没起作用??? tcHeader[1].Font.Bold = true; tcHeader.Add(new TableHeaderCell()); tcHeader[2].Attributes.Add("colspan", "3"); tcHeader[2].Text = "昨日"; tcHeader[2].HorizontalAlign = HorizontalAlign.Center;//这一行为什么没起作用??? tcHeader[2].Font.Bold = true; tcHeader.Add(new TableHeaderCell()); tcHeader[3].Attributes.Add("colspan", "3"); tcHeader[3].HorizontalAlign = HorizontalAlign.Center;//这一行为什么没起作用??? tcHeader[3].Text = "上月</th></tr><tr>";//第二层表头的过度 tcHeader[3].Font.Bold = true; } }</script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <asp:GridView ID="gv_EmployeeP" runat="server" OnRowCreated="gv_EmployeeP_RowCreated"> </asp:GridView> </form></body></html>