俺这样做绑定
Dim db As New SystemDb
Dim dt As New DataTable
......
db.FillTable(dt, strSql)
DataGrid.DataSource = dt
DataGrid.DataBind()
'然后修改DataGrid的列标题,因为数据库出来的是英文字段名
For i = 0 To dt.Columns.Count - 1
DataGrid.Columns(i).HeaderText = "ABCDEFG "
Next
可总在这行DataGrid.Columns(i).HeaderText= "ABCDEFG " 提示我说“超出索引。。。”
请问高手们,这样的情况应该如何做,俺是特别菜的,才开始写asp.net,谢谢大家了
------解决方案--------------------------------------------------------
动态生成的列的标题可以ItemDataBound事件中做 protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e) { if (e.Item.ItemType == ListItemType.Header) { e.Item.Cells[0].Text = "字段一 "; e.Item.Cells[1].Text = "字段二 ";//............ } }
------解决方案--------------------------------------------------------
如楼上的用Header
如果Grid的AutoGenralColumn = true的话,就什么都不用设置,嘻嘻~~~