0

ログイン コントロールがあり、テンプレートに変換してリセット ボタンを追加しました。また、Find Control Method を使用してテキストを空にしようとしました。しかし、テキストボックスを空にすることはできません。以下のHtmlとコードビハインド

コード:

 <asp:Login ID="lgnLogin" runat="server" MembershipProvider = "myCustomProvider" OnAuthenticate = "lgnLogin_Authenticate" DisplayRememberMe = "false" TitleText = "" UserNameLabelText = "Username" >
    <LayoutTemplate>
        <table cellpadding="1" cellspacing="0" style="border-collapse:collapse;">
            <tr>
                <td>
                    <table cellpadding="0">
                        <tr>
                            <td align="right">
                                <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">Username</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox ID="UserName" runat="server"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
                                    ControlToValidate="UserName" ErrorMessage="User Name is required." 
                                    ToolTip="User Name is required." ValidationGroup="lgnLogin">*</asp:RequiredFieldValidator>
                            </td>
                        </tr>
                        <tr>
                            <td align="right">
                                <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label>
                            </td>
                            <td>
                                <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox>
                                <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" 
                                    ControlToValidate="Password" ErrorMessage="Password is required." 
                                    ToolTip="Password is required." ValidationGroup="lgnLogin">*</asp:RequiredFieldValidator>
                            </td>
                        </tr>
                        <tr>
                            <td align="center" colspan="2" style="color:Red;">
                                <asp:Literal ID="FailureText" runat="server" EnableViewState="False"></asp:Literal>
                            </td>
                        </tr>
                        <tr>
                            <td align="right" colspan="2">
                                <asp:Button ID="resetButton" runat="server" Text="Reset" 
                                    onclick="resetButton_Click"/>
                            </td>
                            <td align="right" colspan="2">
                                <asp:Button ID="LoginButton" runat="server" CommandName="Login" Text="Log In" 
                                    ValidationGroup="lgnLogin" />
                            </td>
                        </tr>
                    </table>
                </td>
            </tr>
        </table>
    </LayoutTemplate>
</asp:Login>

コードビハインド:

protected void resetButton_Click(object sender, EventArgs e)
    {
        TextBox username =  (TextBox)lgnLogin.FindControl("UserName");
        TextBox passsword = (TextBox)lgnLogin.FindControl("Password");

        username.Text = "";
        passsword.Text = "";

    }
4

2 に答える 2

1

とにかく、パスワードはポストバック時に自動的にクリアされるはずですが、UserNameはコントロールのViewStateに保存され、イベントの発生後にテキストボックスに再入力されるため、次のようにユーザー名フィールドもクリアする必要があります-

lgnLogin.UserName = "";

それはあなたが望むことをするはずです。

于 2012-05-09T13:11:39.270 に答える
1

HTMLのリセットは試しましたか?

http://www.echoecho.com/htmlforms13.htm

于 2012-05-09T12:00:56.553 に答える