如何动态构造DataGrid列
在ASPX页面里,DataGrid设定自动创建列:
绑定DataGrid的代码如下(假定用xml数据绑定):
Dim DS As New DataSet
Dim FS As FileStream
Dim Reader As StreamReader
FS = New FileStream(Server.MapPath("schemadata.xml"),FileMode.Open,FileAccess.Read)
Reader = New StreamReader(FS)
DS.ReadXml(Reader)
FS.Close()
Dim Source As DataView
Source = new DataView(ds.Tables(0))
MyLiteral.Text = Source.Table.TableName
MyDataGrid.DataSource = Source
MyDataGrid.DataBind()
如果DataGrid不自动创建列,就需要动态根据DataSet的结构创建列了
动态创建列的代码如下:
sName = “Column“
oBoundColumn = New BoundColumn
oBoundColumn.DataField = sName
oBoundColumn.HeaderText = sName
oBoundColumn.SortExpression = sName
oBoundColumn.FooterStyle.HorizontalAlign = HorizontalAlign.Center
oBoundColumn.FooterStyle.ForeColor = Color.White
DataGrid_Query.Columns.Add(oBoundColumn)
以上给的代码不完整,这里偷懒了
(因为手上有个活,来不及写了)
如果有反馈信息要求写个完整的,包括动态添加各种可能的列(包括图片\窗口\Script效果等)
我就以pubs或者xml数据写一个完整的例子,并且附录详细的帮助信息
呵呵~~~精品文章难啊,时间限制了
绑定DataGrid的代码如下(假定用xml数据绑定):
Dim DS As New DataSet
Dim FS As FileStream
Dim Reader As StreamReader
FS = New FileStream(Server.MapPath("schemadata.xml"),FileMode.Open,FileAccess.Read)
Reader = New StreamReader(FS)
DS.ReadXml(Reader)
FS.Close()
Dim Source As DataView
Source = new DataView(ds.Tables(0))
MyLiteral.Text = Source.Table.TableName
MyDataGrid.DataSource = Source
MyDataGrid.DataBind()
如果DataGrid不自动创建列,就需要动态根据DataSet的结构创建列了
动态创建列的代码如下:
sName = “Column“
oBoundColumn = New BoundColumn
oBoundColumn.DataField = sName
oBoundColumn.HeaderText = sName
oBoundColumn.SortExpression = sName
oBoundColumn.FooterStyle.HorizontalAlign = HorizontalAlign.Center
oBoundColumn.FooterStyle.ForeColor = Color.White
DataGrid_Query.Columns.Add(oBoundColumn)
以上给的代码不完整,这里偷懒了
(因为手上有个活,来不及写了)
如果有反馈信息要求写个完整的,包括动态添加各种可能的列(包括图片\窗口\Script效果等)
我就以pubs或者xml数据写一个完整的例子,并且附录详细的帮助信息
呵呵~~~精品文章难啊,时间限制了