0

ユーザーがログインしたときに、ログインコントロールに「Loading...」gifが表示されるようにしたいと思います。

ログインコントロールに希望どおりに表示させるために、テンプレートに変換しました。次に、ここに表示されているガイダンスに従いました。ここここで、ポストバック中にgifを表示します。

しかし、私は今、いくつかの問題を抱えています。無効なログインをサミングしようとすると、ページは想定どおりに動作します。読み込み中のgifが表示され、ログインが無効であると判断された後、gifが消えます。しかし、有効なログインを入力しても、無効であると表示されます。ログインテンプレートを編集したときに何かを台無しにしましたか?

私の他の問題は、「keepLo​​gged」チェックボックスが定型化されていることです。このスタイルは、JQueryによってヘッドに追加されています。最初にページにアクセスしたときに正しく表示されますが、ポストバック後、ログインが無効であると表示された場合、スタイルは適用されず、通常のチェックボックスになります。

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

<script>

    $(document).ready(function () {

        $("input[type=checkbox]").addClass("mini-switch");

    });

</script>

<form id="form1" runat="server" class="form with-margin" name="login-form">
            <div>
                <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

                <asp:UpdatePanel ID="updateLogin" runat="server" DefaultButton="mainLogin$LoginButton">
                <ContentTemplate>
                <asp:Login ID="mainLogin" runat="server" RenderOuterTable="False" onloginerror="mainLogin_LoginError">
                    <LayoutTemplate>
                        <div class="block-header">Please login</div>
                        <asp:ValidationSummary ID="LoginUserValidationSummary" runat="server"  
                        ValidationGroup="mainLogin"  CssClass="message error no-margin"
                        DisplayMode="List"/>


                        <input type="hidden" name="a" id="a" value="send">
                        <p class="inline-small-label">
                            <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName"><span class="big">User name</span></asp:Label>

                            <asp:TextBox ID="UserName" runat="server" CssClass='full-width'></asp:TextBox>

                            <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" 
                                ControlToValidate="UserName" ErrorMessage="User Name is required." 
                                ToolTip="User Name is required." ValidationGroup="mainLogin" 
                                Display="None" />
                        </p>
                        <p class="inline-small-label">
                            <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password"><span class="big">Password</span></asp:Label>

                            <asp:TextBox ID="Password" runat="server" TextMode="Password" CssClass='full-width'></asp:TextBox>

                            <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" 
                                ControlToValidate="Password" ErrorMessage="Password is required." 
                                ToolTip="Password is required." ValidationGroup="mainLogin" 
                                Display="None" />                
                        </p>


                        <asp:Button ID="LoginButton" runat="server"  CommandName="Login" 
                        Text="Log In" type="button"
                        ValidationGroup="mainLogin" onclick="LoginButton_Click" CSSClass='button float-right'/>


                        <p class="input-height">
                            <asp:CheckBox ID="keepLogged" runat="server" Checked="True"/> 

                            <asp:Label ID="Label1" runat="server" Text="Keep me logged in" AssociatedControlID="keepLogged" CssClass="inline"></asp:Label>
                        </p>

                    </LayoutTemplate>

                </asp:Login>
                </ContentTemplate>
                </asp:UpdatePanel>



          </div>
            <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                    <ProgressTemplate>
                      <img alt="" src="images/lock.gif" /> <strong>Logging In...</strong>
                   </ProgressTemplate>
            </asp:UpdateProgress> 
</form>

助けてくれてありがとう。

4

1 に答える 1

0

組み込みのASP.NETログインコントロールがUpdatePanel内で正しく機能するとは思いません。ただし、同じ効果を達成する方法は他にもあります。ここにあなたが始めるべき記事があります。

于 2012-07-10T19:12:53.933 に答える