DataGrid动态生成问题,晕死了,高手帮帮忙~~~~~~~~~~~~~~~~
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGrid1 = New DataGrid()
DataGrid1.EnableViewState = False
DataGrid1.AllowPaging = True
DataGrid1.AllowSorting = True
Dim i As Integer = 0
For i = 0 To Page.Controls.Count - 1
If Page.Controls(i).GetType.Name = "HtmlForm" Then
Page.Controls(i).Controls.Add(DataGrid1)
Exit For
End If
Next
Dim col1 As New TemplateColumn()
col1.ItemTemplate = New DataGridTemplate(ListItemType.Item, "CheckBox")
DataGrid1.Columns.Add(col1)
BindData()
End Sub
Protected Overridable Sub BindData()
Dim dt As New DataTable()
dt.Columns.Add("a", System.Type.GetType("System.String"))
Dim row As DataRow = dt.NewRow()
row.Item("a") = "数据1"
dt.Rows.Add(row)
row = dt.NewRow()
row.Item("a") = "数据2"
dt.Rows.Add(row)
If Not Page.IsPostBack Then
row = dt.NewRow()
row.Item("a") = "数据3"
dt.Rows.Add(row)
row = dt.NewRow()
row.Item("a") = "数据4"
dt.Rows.Add(row)
row = dt.NewRow()
End If
DataGrid1.DataSource = dt
DataGrid1.DataBind()
End Sub
w我想动态生成DataGrid ,DataGrid中包括一列CheckBox的模版列,第一次加载页面时能够正常显示,但是如果我在postback时,把数据源的记录条数减少(就向我写的代码一样),就会报如下错误:
指定的转换无效。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidCastException: 指定的转换无效。
源错误:
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。
堆栈跟踪:
[InvalidCastException: 指定的转换无效。]
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad)
System.Web.UI.Page.ProcessRequestMain()
如果我不加入动态的CheckBox模版列,或者把DataGrid的AllowPaging 属性置为False,就不会有错,请问这是为什么,这个问题搞了一天了,大家帮帮忙啊~~~~~~~