2012-09-23 31 views
0

我有一个loginview,这是在母版页。并在登录控制的登录模式下,我有一个超链接。我想获得的超链接,但我得到的错误(对象不refrence ...)我如何访问在loginview(在asp.net-c#中)的控件?

我的代码是:

HyperLink hp = FindControl("LoginView1_").FindControl("hpMng") as HyperLink; 
+0

你想从内容页面找到控件吗? – Jupaol

+0

我想要从母版页访问来控制(即在同一母版页),但我不能。 –

+0

然后尝试通过使用this.Master.FindControl(“LoginView1 _”)。FindControl(“hpMng”)作为HyperLink来访问它; – Sleipnir

回答

2

FindControl方法只搜索控件,是你找的控件的集合下。它不会执行完整的递归搜索。

而在你的情况,你可以做这样的事情,因为你是在同一页上(母版)

 var h = this.login.FindControl("link") as HyperLink; 

     this.msg.Text = h.Text; 

记住,如果HyperLink控制在LoggedInTemplate当用户将只提供登录。如果HyperLink控件位于AnonymousTemplate中,则只有当用户尚未登录到应用程序时,该控件才可用。考虑到这一点,以避免空引用异常

1

对于我来说,它工作正常。你正在尝试登录后?显然,如果你已经在LoggedInTemplate中声明并且没有登录,控件将不会被渲染。

?FindControl("HeadLoginView").FindControl("hpMng") 
{Text = "aaa"} 
    System.Web.UI.WebControls.HyperLink: {Text = "aaa"} 
相关问题