在项目中要使用AspxGridView动态生成列,输入数据后再获取值。于是仿照了如下方法http://www.cnblogs.com/nine425/archive/2009/01/03/1367480.html我的代码如下:
模版列是一个TextBox Public Class TextBoxTemplate
Implements ITemplate Private _ID As String Public Property ID() As String
Get
Return _ID
End Get
Set(ByVal value As String)
If String.IsNullOrEmpty(value) Then
_ID = "TextBox"
Else
_ID = value
End If
End Set
End Property Public Sub New(ByVal id As String)
Me.ID = id
End Sub Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
Dim item As New TextBox
item.ID = ID
container.Controls.Add(item)
End Sub
End Class
然后在程序中动态添加这一列Dim testResult As GridViewDataTextColumn = New GridViewDataTextColumn
testResult.DataItemTemplate = New TextBoxTemplate("testResultTextBox")
ASPxGridView.Columns.Add(testResult)
但是在程序中再使用ASPxGridView的FindRowCellTemplateControl方法却找不到控件。总是提示未将对象引用设置到对象实例!Dim testResultTextBox As TextBox = CType(inputExamResultASPxGridView.FindRowCellTemplateControl(i, Nothing, "testResultTextBox"), TextBox)用调试方法看到这一句执行返回的结果是Nothing(null)
请问有高人能解答一下吗????
模版列是一个TextBox Public Class TextBoxTemplate
Implements ITemplate Private _ID As String Public Property ID() As String
Get
Return _ID
End Get
Set(ByVal value As String)
If String.IsNullOrEmpty(value) Then
_ID = "TextBox"
Else
_ID = value
End If
End Set
End Property Public Sub New(ByVal id As String)
Me.ID = id
End Sub Public Sub InstantiateIn(ByVal container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn
Dim item As New TextBox
item.ID = ID
container.Controls.Add(item)
End Sub
End Class
然后在程序中动态添加这一列Dim testResult As GridViewDataTextColumn = New GridViewDataTextColumn
testResult.DataItemTemplate = New TextBoxTemplate("testResultTextBox")
ASPxGridView.Columns.Add(testResult)
但是在程序中再使用ASPxGridView的FindRowCellTemplateControl方法却找不到控件。总是提示未将对象引用设置到对象实例!Dim testResultTextBox As TextBox = CType(inputExamResultASPxGridView.FindRowCellTemplateControl(i, Nothing, "testResultTextBox"), TextBox)用调试方法看到这一句执行返回的结果是Nothing(null)
请问有高人能解答一下吗????
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货