&
如果要在 VB.NET 中连接字符串(与 C# 相对),则必须使用:
sDDL = "ddlCol" & iDDLControlCounter.ToString()
但是,这不应该导致您的转换错误。也许sDDL
被声明为Int32
.
无论如何,您应该设置OPTION STRICT
为,On
因为我怀疑该错误是由隐式转换引起的。如果可能,应避免后期装订。
请参阅:期权严格声明
编辑:Controls.Controls
是一个具有索引器的集合。所以你可以通过Me.Controls(0)
. 所以这是异常的主要原因,因为sDDL
是String
. 但是这些知识并不能帮助您进一步找到您的DropDownLists
.
所以阅读更多...
这些下拉列表位于gridview的标题行中的事实会有所不同吗?我的心态是控制就是控制就是控制,但也许有一些我不知道的规则?
不,这没有什么区别。然后,NullReferenceException
当您尝试使用您的DropDownList
.
但是您需要使用Control.FindControl
它的 ID 来获取控件的引用。
如果它确实在 a 的标题行中,GridView
则必须使用FindControl
正确NamingContainer
的,即HeaderRow
:
If grid.HeaderRow IsNot Nothing Then
Dim ddl = DirectCast(grid.HeaderRow.FindControl("ddlCol" & iDDLControlCounter), DropDownList)
End If