1

私は ASP.NET 4.0 WebForms を使用しており、コントロールを利用しています。ただし、3 つのテキスト ボックス、電子メール、パスワード、生年月日を追加したいと考えています。電子メールとパスワードはユーザー名とパスワードとして標準で付属していますが、生年月日の 3 つ目のテキスト ボックス (ログイン ボタンの上、電子メールとパスワードの下) がある場合、私のコード ビハインドでは、このコントロールの ID は認識されません。タグの範囲。

このコントロールを使用してさらにコントロールを追加し、それらを個別に認証する方法はありますか?

4

2 に答える 2

4

Visual Studio のデザイン ビューから、asp:LoginControl をテンプレートに変換できます。これにより、コントロール内のすべての html が公開されます。その後、そこに必要なものを追加できます。

<asp:Login ID="Login1"
            runat="server">
            <LayoutTemplate>
                <table cellpadding="1" cellspacing="0" style="border-collapse:collapse;">
                    <tr>
                        <td>
                            <table cellpadding="0">
                                <tr>
                                    <td align="center" colspan="2">
                                        Log In</td>
                                </tr>
                                <tr>
                                    <td align="right">
                                        <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">User Name:</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="Login1">*</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="Login1">*</asp:RequiredFieldValidator>
                                    </td>
                                </tr>
                                <tr>
                                    <td colspan="2">
                                        <asp:CheckBox ID="RememberMe" runat="server" Text="Remember me next time." />
                                    </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="LoginButton" runat="server" CommandName="Login" Text="Log In" 
                                            ValidationGroup="Login1" />
                                    </td>
                                </tr>
                            </table>
                        </td>
                    </tr>
                </table>
            </LayoutTemplate>
        </asp:Login>

Login1.FindControl("")コード ビハインドでは、アクセスする追加のコントロールにを使用する必要があります。

したがって、新しい asp:textbox の場合、次のようにすることができます。

<asp:TextBox id="TextBox1" runat="server" />

コードビハインドで:

TextBox TextBox1 = (TextBox)Login1.FindControl("TextBox1");
于 2010-09-21T16:00:38.967 に答える