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いるときにのみ使用できることに注意してください。コントロールがコントロール内にある場合、ユーザーがアプリケーションにログインしていない場合にのみ使用できます。null 参照例外を回避するには、これを考慮してください。HyperLinkAnonymousTemplate

于 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 に答える