创建固定表头、表格体滚动的DataGrid

王朝c#·作者佚名  2006-01-08
宽屏版  字体: |||超大  

创建固定表头、表格体滚动的DataGrid

作者:孟宪会 出自:【孟宪会之精彩世界】 发布日期:2003年6月11日 7点49分48秒

在使用DataGrid时,有时候需要表头表头固定、表格体的内容可以滚动,下面的代码就是实现这个功能的代码。

ShowFixedHeader.aspx

ShowFixedHeader.aspx.vb

Imports System

Imports System.Data

Imports System.Data.OleDb

Public Class ShowFixedHeader

Inherits System.Web.UI.Page

Protected WithEvents Table1 As System.Web.UI.HtmlControls.HtmlTable

Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid

Protected WithEvents Form1 As System.Web.UI.HtmlControls.HtmlForm

Protected WithEvents lucky_elove As HtmlControls.HtmlGenericControl

#Region " Web Form Designer Generated Code "

'This call is required by the Web Form Designer.

Private Sub InitializeComponent()

End Sub

Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init

'CODEGEN: This method call is required by the Web Form Designer

'Do not modify it using the code editor.

InitializeComponent()

End Sub

#End Region

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

lucky_elove.InnerText = "【孟宪会之精彩世界】 - 跨栏表头的实现"

Table1.Rows(0).Cells(0).InnerText = "【孟宪会之精彩世界】.NET版本之最新文章"

Table1.Rows(0).Cells(1).InnerText = "文章信息"

Table1.Rows(1).Cells(0).InnerText = "文章标题"

Table1.Rows(1).Cells(1).InnerText = "发布时间"

Table1.Rows(1).Cells(2).InnerText = "所属栏目"

Table1.Rows(1).Cells(3).InnerText = "点击率"

Table1.Rows(0).Style.Add("color", "white")

Table1.Rows(0).Style.Add("font-weight", "bold")

Table1.Rows(0).Cells(0).Attributes.Add("onclick",_

"window.open('http://lucky_elove.www1.dotnetplayground.com/')")

Table1.Rows(0).Cells(0).Style.Add("cursor", "hand")

Try

Dim cnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="_

+ Server.MapPath("Test.mdb")

Dim cn As New OleDbConnection(cnString)

cn.Open()

Dim strSQL As String = "SELECT TOP 30 D.Title,D.CreateDate,S.Title as pid,D.HitCount "_

+ "FROM Document D INNER JOIN Subject S ON D.pid = S.id ORDER BY CreateDate DESC"

Dim cmd As New OleDbCommand(strSQL, cn)

DataGrid1.DataSource = cmd.ExecuteReader

DataGrid1.DataBind()

cn.Close()

cn = Nothing

Catch eOle As OleDbException

Response.Write("产生错误:" + eOle.Message)

End Try

End Sub

Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, _

ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then

If e.Item.Cells(0).Text.Length 26 Then

e.Item.Cells(0).Attributes.Add("Title", e.Item.Cells(0).Text)

e.Item.Cells(0).Text = e.Item.Cells(0).Text.Substring(0, 26) + "…"

End If

e.Item.Cells(1).Text = Format(System.Convert.ToDateTime(e.Item.Cells(1).Text),_

"yyyy年M月d日 h点m分s秒")

End If

End Sub

End Class

结果如下:

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有