怎样给c#里gridview加表头

怎样给c#里gridview加表头,第1张

1,样式固定

<style type="text/css">

.Freezing

{

position:relative

table-layout:fixed

top:expression(this.offsetParent.scrollTop)

z-index: 10

}

.Freezing th{text-overflow:ellipsisoverflow:hiddenwhite-space: nowrappadding:2px}

</style>

2.Javascript方法

//创建表头

if(document.getElementById("gvTitle") == null)

{

var gdvList = document.getElementById("gvCommon")

var gdvHeader = gdvList.cloneNode(true)

for(i = gdvHeader.rows.length - 1i >0i--)

{

gdvHeader.deleteRow(i)

}

document.getElementById("divTitle").appendChild(gdvHeader)

gdvList.deleteRow(0)

//gdvList.rows[0].style.display = 'none'

}

大致做法是利用JS方法Copy出一个表头 gdvHeader 放在一个“divTitle”的DIV中。

GridView是包含在“divGvData”DIV中的,然后设置divTitle的页面位置和divGvData的一致,也就是覆盖在上面。目前发现效果还行。有一点要注意,gdvHeader.id = "gvTitle"要重新设置一个ID,不然删除的还是GridView的数据行。

3.HTML中的部分代码:

<div id="divTitle" style="position:relativetop:0left:0overflow:hiddenwidth:978pxborder:0px solid red"></div>

<div id="divGvData" runat="server" style="position:relativetop:0pxleft:0pxoverflow:scrollwidth:994pxheight:450px" onscroll="funGrilViewScroll()return false">

<asp:GridView ID="gvCommon" style="position:relativetop:0pxleft:0px" runat="server" CssClass="gvFixd" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" AutoGenerateColumns="False" GridLines="Vertical" PageSize="5" AllowSorting="True" OnSorting="gvCommon_Sorting" >

<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />

<RowStyle BackColor="#E7E7FF" ForeColor="Black" Font-Size="Small" />

<HeaderStyle HorizontalAlign="Center" BackColor="#000084" BorderColor="White" BorderWidth="1px" BorderStyle="Solid" Font-Bold="True" ForeColor="White"/>

</asp:GridView>

</div>

4.asp.net方法

protected void InitGridviewHeader(GridView _gv1, Table _tb1, Panel _pc1)

{

//Page.EnableViewState = false

//[Espal]Copiando las propiedades del renglon de encabezado

//[English]Coping a header row data and properties

_tb1.Rows.Add(_gv1.HeaderRow)

_tb1.Rows[0].ControlStyle.CopyFrom(_gv1.HeaderStyle)

_tb1.CellPadding = _gv1.CellPadding

_tb1.CellSpacing = _gv1.CellSpacing

_tb1.BorderWidth = _gv1.BorderWidth

//if (!_gv1.Width.IsEmpty)

//_gv1.Width = Unit.Pixel(Convert.ToInt32(_gv1.Width.Value) + Convert.ToInt32(_tb1.Width.Value) + 13)

//[Espa]Copiando las propiedades de cada celda del nuevo encabezado.

//[English]Coping each cells properties to the new header cells properties

int Count = 0

_pc1.Width = Unit.Pixel(100)

for (Count = 0Count <_gv1.HeaderRow.Cells.Count - 1Count++)

{

_tb1.Rows[0].Cells[Count].Width = _gv1.Columns[Count].ItemStyle.Width

_tb1.Rows[0].Cells[Count].BorderWidth = _gv1.Columns[Count].HeaderStyle.BorderWidth

_tb1.Rows[0].Cells[Count].BorderStyle = _gv1.Columns[Count].HeaderStyle.BorderStyle

_pc1.Width = Unit.Pixel(Convert.ToInt32(_tb1.Rows[0].Cells[Count].Width.Value) + Convert.ToInt32(_pc1.Width.Value) + 14)

}

//Panel1.Width = Unit.Pixel(Convert.ToInt32(_tb1.Rows[0].Cells[Count-1].Width.Value) + 12)

}

您好,您这样:

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

GridView1.DataSource = FormatDT()

GridView1.DataBind()

}

}

protected void GridView1_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("bgcolor", "#8E8E8E")

tcHeader[0].Attributes.Add("rowspan", "0")//跨Row

tcHeader[0].Attributes.Add("colspan", "9")//跨Column

tcHeader[0].Text = "全部信息</tr><tr>"

//第二行表头

tcHeader.Add(new TableHeaderCell())

tcHeader[1].Attributes.Add("bgcolor", "#008A23")

tcHeader[1].Text = "身份z号码"

tcHeader.Add(new TableHeaderCell())

tcHeader[2].Text = "基本信息"

tcHeader[2].Attributes.Add("bgcolor", "#005EBB")

tcHeader[2].Attributes.Add("colspan", "3")

tcHeader.Add(new TableHeaderCell())

tcHeader[3].Text = "福利"

tcHeader[3].Attributes.Add("bgcolor", "#008A23")

tcHeader[3].Attributes.Add("colspan", "2")

tcHeader.Add(new TableHeaderCell())

tcHeader[4].Text = "应发合计"

tcHeader[4].Attributes.Add("bgcolor", "#008A23")

tcHeader.Add(new TableHeaderCell())

tcHeader[5].Text = "联系方式</tr><tr>"

tcHeader[5].Attributes.Add("bgcolor", "#005EBB")

tcHeader[5].Attributes.Add("colspan", "2")

//第三行表头

tcHeader.Add(new TableHeaderCell())

tcHeader[6].Text = "身份z号码"

tcHeader.Add(new TableHeaderCell())

tcHeader[7].Text = "姓名"

tcHeader.Add(new TableHeaderCell())

tcHeader[8].Text = "出生日期"

tcHeader.Add(new TableHeaderCell())

tcHeader[9].Text = "性别"

tcHeader.Add(new TableHeaderCell())

tcHeader[10].Text = "基本工资"

tcHeader.Add(new TableHeaderCell())

tcHeader[11].Text = "奖金"

tcHeader.Add(new TableHeaderCell())

tcHeader[12].Text = "应发合计"

tcHeader.Add(new TableHeaderCell())

tcHeader[13].Text = "家庭住址"

tcHeader.Add(new TableHeaderCell())

tcHeader[14].Text = "邮政编码"

break

//数据行 内容自适应 不换行

case DataControlRowType.DataRow:

TableCellCollection cells1 = e.Row.Cells

for (int i = 0i <cells1.Counti++)

{

cells1[i].Wrap = false//设置此项切记 不要设置前台GridView宽度

}

break

}

}

//创建DataTable

protected DataTable CreateDT()

{

DataTable tblDatas = new DataTable("Datas")

//序号列

//tblDatas.Columns.Add("ID", Type.GetType("System.Int32"))

//tblDatas.Columns[0].AutoIncrement = true

//tblDatas.Columns[0].AutoIncrementSeed = 1

//tblDatas.Columns[0].AutoIncrementStep = 1

//数据列

tblDatas.Columns.Add("身份z号码", Type.GetType("System.String"))

tblDatas.Columns.Add("姓名", Type.GetType("System.String"))

tblDatas.Columns.Add("出生日期", Type.GetType("System.String"))

tblDatas.Columns.Add("性别", Type.GetType("System.String"))

tblDatas.Columns.Add("基本工资", Type.GetType("System.Decimal"))

tblDatas.Columns.Add("奖金", Type.GetType("System.Decimal"))

//统计列开始

tblDatas.Columns.Add("应发合计", Type.GetType("System.String"), "基本工资+奖金")

//统计列结束

tblDatas.Columns.Add("家庭住址", Type.GetType("System.String"))

tblDatas.Columns.Add("邮政编码", Type.GetType("System.String"))

tblDatas.Rows.Add(new object[] { null, "张三", "1982", "0", 3000, 1000, null, "深圳市", "518000" })

tblDatas.Rows.Add(new object[] { null, "李四", "1983", "1", 3500, 1200, null, "深圳市", "518000" })

tblDatas.Rows.Add(new object[] { null, "王五", "1984", "1", 4000, 1300, null, "深圳市", "518000" })

tblDatas.Rows.Add(new object[] { null, "赵六", "1985", "0", 5000, 1400, null, "深圳市", "518000" })

tblDatas.Rows.Add(new object[] { null, "牛七", "1986", "1", 6000, 1500, null, "深圳市", "518000" })

return tblDatas

}

//转换DataTable中的数据 用于逻辑处理相应的数据 显示

protected DataTable FormatDT()

{

DataTable dt1 = CreateDT()

//容错处理 用于不确定 自动产生的列

if (dt1.Columns.Contains("性别"))

{

foreach (DataRow dr in dt1.Rows)

{

dr["性别"] = (dr["性别"].ToString() == "0") ? "女" : "男"

}

}

return dt1

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11951424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存