0

これに関する記事をオンラインで見つけましたが、動作させることができないようです。

これが私の現在のHTMLです(ごちゃごちゃしたレイアウトのものはすべて取り除かれています)

<asp:Login ID="LoginUser" runat="server" EnableViewState="false"
OnAuthenticate="LoginUser_Authenticate">
    <LayoutTemplate>

        <asp:TextBox ID="UserName" runat="server" Text="username" 
        CssClass="text-box login-text-box"></asp:TextBox>

        <asp:TextBox ID="Password" runat="server" CssClass="text-box 
        login-text-box" TextMode="Password"></asp:TextBox>

    </LayoutTemplate>
</asp:Login>

オンラインで見つけたサーバー側のコードは次のとおりです。

    protected void Page_Load(object sender, EventArgs e)
    {
        txtPassword.Attributes.Add("value", "defaultpassword")
    }

「txtPassword は現在のコンテキストに存在しません」というメッセージが表示され続けます。

「txtPassword」テキストを変更すると、そのエラーが発生します。

4

3 に答える 3

3

2つのこと。

まず、オブジェクトを実際の名前で参照する必要があります。mikhairu さんが指摘したように、「txtPassword」はオブジェクト名ではありません。TextBox オブジェクトは「パスワード」です。

2 つ目は、同様に重要なことですが、コンテキストが重要であるということです。あなたのページには「パスワード」テキストボックスがありません。「LoginUser」という名前のユーザー コントロールが行います。したがって、2 つのことのいずれかを行う必要があります。1 つのオプションは、ログイン コントロールから継承し、パスワードを設定するためのコードを追加することです。別のオプションは、次のようにすることです。

LoginUser.Password.Attributes.Add("value", "defaultpassword");

ただし、それが機能するかどうかは完全にはわかりません。おそらくあなたがしなければならないでしょう:

TextBox txtPassword = (TextBox)LoginUser.FindControl("Password");
txtPassword.Attributes.Add("value", "defaultpassword");
于 2013-08-21T21:04:44.143 に答える
1

テキストボックスはコントロールの内部にあるLayoutTemplateためLogin、最初に見つける必要があります。

例:

TextBox txtPassword = (TextBox)LoginUser.FindControl("Password");
txtPassword.Attributes.Add("value", "defaultpassword");
于 2013-08-21T21:05:57.287 に答える