0

LoginView LoggedIn template 内の LoginName コントロールを取得しようとしましたが、いくつかの方法にもかかわらず、コードはまだ機能しませんでした。

デフォルトのユーザー名を顧客名に変更したいと考えていました。LoggedInTemplate 内でコントロールを見つけようとしましたが、次のエラーが表示されます。

 'System.Web.UI.ITemplate' does not contain a definition for 'FindControl' and no extension method 'FindControl' accepting a first argument of type 'System.Web.UI.ITemplate' could be found (are you missing a using directive or an assembly reference?

コードは次のとおりです。

 <asp:LoginView ID="LoginView1" runat="server">
   <LoggedInTemplate> 


                 Hello, <asp:LoginName ID="LoginName1" runat="server"></asp:LoginName>

                 <br /> 

                 <div style="text-align: right; margin-right: 5px "> 
                <asp:LoginStatus ID="LoginStatus1" runat="server" LogoutPageUrl="~/Home.aspx" Font-Underline="True" />
                </div></div>
        </LoggedInTemplate>


    </asp:LoginView>  

後ろのコード:

protected void Login1_LoggedIn(object sender, EventArgs e)
    {

        LoginName loginName = LoginView1.LoggedInTemplate.FindControl("LoginName1") as LoginName;
       // LoginName loginName = LoginView1.FindControl("LoginName1") as LoginName;

       // loginName.FormatString = fullName;

    }
4

1 に答える 1

0

これは問題なく動作するはずです(コメントされたコードです):

LoginName loginName = LoginView1.FindControl("LoginName1") as LoginName;
loginName.FormatString = fullName;

あなたの問題は、Login1_LoggedIn メソッドにアクセスしたことがないことだと思います。メソッドにブレークポイントを追加して、デバッグを開始し、ヒットするかどうかを確認してください。

于 2012-08-03T21:01:42.910 に答える