.NET Active Server页面FindControl始终不返回任何内容

时间:2012-03-16 20:46:13

标签: asp.net .net vb.net

我创建了一个带有一个按钮的简单页面,然后在click事件中使用FindControl来获取对自身的引用。但是...... FindControl什么都没回来。 代码

Protected Sub EntryDoor1_Click(sender As Object, e As System.EventArgs) Handles EntryDoor1.Click
    Dim control = FindControl("EntryDoor1")
    control.Visible = False
End Sub

1 个答案:

答案 0 :(得分:6)

因为你已经说过你想要“引用自己”,所以我假设您想要引用导致点击事件的按钮。

最简单的方法是使用sender参数,因为它始终是源代码控件:

Dim button = DirectCast(sender, Button)

但是当按钮位于页面顶部时(如本例所示),将在部分designer.vb文件中自动创建对控件的引用:

 EntryDoor1.Visible = False

那么,如果您有直接引用,为什么要使用FindControl

修改

只是为了完整起见。您描述的行为只能有一个原因:您尝试在FindControl的{​​{1}}中使用ContentPageThis is a special case,您需要首先获得对MasterPage的引用。然后,您可以ContentPlaceholder使用FindControl

Button

但同样,这是毫无意义的,因为你直接在页面中有了引用。