【发布时间】:2013-10-28 14:59:24
【问题描述】:
我正在尝试将两个变量分别设置为两个控件,但我当前的代码不起作用。正确的语法是什么?
ascx 代码:
<ul>
<li runat="server" id="searchListItem">
<a href="javascript:void(0)">Search Keywords</a>
</li>
</ul>
<input runat="server" id="searchBox" type="text" />
ascx.vb 代码:
Private Sub Page_Load (...
`other code
Dim jobsLi As HtmlGenericControl
Dim jobsBox As HtmlGenericControl
jobsLi = CType(Page.FindControl("searchListItem"), HtmlGenericControl)
jobsBox = CType(Page.FindControl("searchBox"), HtmlGenericControl)
`other code
End Sub
当我单步执行代码 jobsLi 和 jobsBox 时,仍然是 nothing。
【问题讨论】:
-
我记不太清了,但是当您将
runat="server"添加到这两个控件时,它们应该可以从 CodeBehind 自动访问,不是吗? -
另外,我认为
.FindControl()不是递归的。但话又说回来,我不记得了。 -
@MelanciaUK:他们不是。我不知道这是否重要,但是找到控件的代码在 Page_Load 函数中
-
我刚刚确认了。它不是递归的。 codinghorror.com/blog/2005/06/recursive-pagefindcontrol.html
-
@MelanciaUK:谢谢!我使用了递归函数,现在它可以工作了。如果你写你的评论作为答案,我会接受。
标签: asp.net vb.net findcontrol htmlgenericcontrol