держать диалог открытым при сбое проверки - PullRequest
0 голосов
/ 29 сентября 2011

Попытка достичь этого без Ajax ..

Javascript

jQuery(function () {
        // Modal Login.
        jQuery(".ModalBoxLogin").dialog({
            autoOpen: false,
            bgiframe: true,
            height: 155,
            resizable: false,
            draggable: false,
            width: 353,
            modal: true,
            open: function (type, data) {
                // Hide Close
                jQuery(".ui-dialog-titlebar-close").hide();
                // include modal into form
                jQuery(this).parent().appendTo(jQuery("form:first"));
                //clear all text.
                jQuery(this).find(':text').val('');
                jQuery(this).find(':password').val('');
            },
            close: function () {
                //clear all text.
                jQuery(this).find(':text').val('');
                jQuery(this).find(':password').val('');
            }
        });
    });

HTML

    <%--Login Dialog--%>
    <asp:Panel ID="pnlLogin" runat="server" CssClass="ModalBoxLogin" title="LOGIN">
        <div class="ModalBox_conteudo">
            <div class="ModalBox_esq">
                <asp:Label ID="lblEmail" Text="E-MAIL:" runat="server" />
                <asp:Label ID="lblSenha" Text="SENHA:" runat="server" />
            </div>
            <div class="ModalBox_dir">
                <asp:TextBox ID="txtEmail" runat="server" placeholder="Digite o seu e-mail" />
                <br />
                <asp:TextBox ID="txtSenha" TextMode="Password" runat="server" placeholder="Digite a sua senha"/>
                <br />
                <asp:LinkButton ID="btnLogar" runat="server" CssClass="btnOk" OnClick="btnLogar_Click" />
                <br/>
                <asp:Label ID="lblMensagemLogin" runat="server"></asp:Label>
                <asp:Literal ID="litScriptLogin" runat="server"></asp:Literal>

            </div>
            <div class="ModalBox_links">
                <asp:HyperLink ID="hlCadastroLogin1" NavigateUrl="" Text="Ainda não tem cadastro?" runat="server" />
                <span>&nbsp;|&nbsp;</span>
                <asp:HyperLink ID="hlCadastroLogin2" NavigateUrl="" Text="Esqueceu a senha?" runat="server" />
            </div>
        </div>
    </asp:Panel>

CS

    protected void btnLogar_Click(object sender, EventArgs e)
    {
        ControllerCliente controllerCliente = new ControllerCliente();
        controllerCliente.Cliente.Email = txtEmail.Text;
        controllerCliente.Cliente.Senha = Util.Criptografar(txtSenha.Text);
        controllerCliente.Carregar();

        if (controllerCliente.Cliente.ClienteCodigo > 0)
        {
            hlLogin.Visible = false;
            hlCadastro.Visible = false;
            lblP.Text = "Olá " + controllerCliente.Cliente.Nome;

            ScriptManager.RegisterClientScriptBlock(this, typeof(Page), "dialog", "alert('oi');", true);

            //litScriptLogin.Text = "<script>alert('teste');</script>";

            //litScriptLogin.Text = "<script>getElementById('" + pnlLogin.ClientID + "').style.display='none';</script>";
            //pnlLogin.Style["display"] = "none";
        }
        else
            lblMensagemLogin.Text = "Email ou senha inválido.";
    }

Если я использую updatePanel в этом разделе:

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                        <asp:LinkButton ID="btnLogar" runat="server" CssClass="btnOk" OnClick="btnLogar_Click" />
                        <br/>
                        <asp:Label ID="lblMensagemLogin" runat="server"></asp:Label>
                        <asp:Literal ID="litScriptLogin" runat="server"></asp:Literal>
                    </ContentTemplate>
                </asp:UpdatePanel>

диалог не закрывается, когда мне это удается.

В любом случае, что мне не хватает?

С уважением,

РЕДАКТИРОВАТЬ: Просто добавив некоторые вещи ...

javascript Вызов:

    /* Modal */
    jQuery(".ModalBoxOpenLogin").live("click", function myfunction() {
        jQuery(".ModalBoxLogin").dialog("open");
    });

    jQuery(".ModalBoxOpenCadastro").live("click", function myfunction() {
        jQuery(".ModalBoxCadastro").dialog("open");
    });

HTML Звоните:

<asp:UpdatePanel ID="UpdatePanel2" runat="server">
                            <ContentTemplate>
                                <asp:HyperLink ID="hlLogin" runat="server" Text="Log in" CssClass="menu_log_menu ModalBoxOpenLogin"></asp:HyperLink>
                                <asp:Label ID="lblP" runat="server" Text="|" style="margin-left:5px; cursor:default;color:#CCCCCC;" ></asp:Label>
                                <asp:HyperLink ID="hlCadastro" runat="server" Text="Cadastre-se" CssClass="menu_log_menu ModalBoxOpenCadastro"></asp:HyperLink>
                            </ContentTemplate>
                        </asp:UpdatePanel>
...