0

我有一个 loginview ,位于母版页中。在登录控件的登录模式下,我有一个超链接。我想访问超链接,但我得到错误(对象不是参考...)

我的代码是:

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

2 回答 2

2

FindControl方法仅搜索您要查找的控件集合下的控件。它不会进行完整的递归搜索。

在你的情况下,你可以做这样的事情,因为你在同一页面上(MasterPage)

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

        this.msg.Text = h.Text;

请记住,如果HyperLink控件在其中,则LoggedInTemplate它仅在用户登录时可用。如果HyperLink控件在该控件中,则AnonymousTemplate该控件将仅在用户尚未登录应用程序时可用。考虑到这一点以避免空引用异常

于 2012-09-23T19:25:15.197 回答
1

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

?FindControl("HeadLoginView").FindControl("hpMng")
{Text = "aaa"}
    System.Web.UI.WebControls.HyperLink: {Text = "aaa"}
于 2012-09-23T19:20:13.920 回答