日期:2014-05-19  浏览次数:20471 次

DataGrid动态绑定问题,标题怎么弄?
俺这样做绑定
                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的话,就什么都不用设置,嘻嘻~~~