none
Como capturar o valor Sim ou Não de uma dialog modal no Code-Behind: Server Side?

    Question

  • Olá boa tarde,

    Como faço para capturar o valor Sim ou Não, quando clico naqueles botões da dialog modal, isso dentro do Code-Behind: Server Side?

    Tem que ser no Server-Side e não no Client-Side! Isso porque ao clicar em Sim, quero gravar no banco de dados um determinado registro, e se clicar em Não, um outro tipo de registro.

    A solução pode ser em javascript, ajax control toolkit ou jquery, tanto faz, desde que funcione, rs. Procurei muito e só tenho achado soluções Client-Side :(

    Obrigada

    Monday, March 04, 2013 8:33 PM

Answers

  • Olá Juliana,

    fiz exemplo aqui Jquery.

    CodeBeside

    <body>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#opendialog").click(function () {
                    $("#modal").dialog({
                        resizable: false,
                        height: 140,
                        modal: true,
                        buttons: {
                            "sim": function () {
                                $(this).dialog("close");
                                //adiciona s no hidden
                                $("#selecao").attr("value", "s");
                                //faz um postback para servidor
                                document.forms["form1"].submit();
                            },
                            Cancel: function () {
                                $(this).dialog("close");
                                //adiciona n no hidden
                                $("#selecao").attr("value", "n");
                                //faz um postback para servidor
                                document.forms["form1"].submit();
                            }
                        }
                    });
                });
            });
        </script>
        <form id="form1" runat="server">
            <%-- Abre o dialog --%>
            <input id="opendialog" type="button" value="abre modal" />
            <div id="modal"></div>
            <%-- vair ser recuperado no servidor, so para quarda valor --%>
            <input type="hidden" name="selecao" id="selecao" />
        </form>
    </body>

    CodeBehind

    protected void Page_Load(object sender, EventArgs e)
            {
                //verifica qual letra que esta dentro do hidden
                switch (Request["selecao"])
                {
                    case "s":
                        //foi pressionado sim
                        break;
                    case "n":
                        //foi pressionado nao
                        break;
                }
            }
    Não esqueça de referenciar Jquery e Jquery UI
    Espero ter ajudado
    Monday, March 04, 2013 11:25 PM
  • Obrigada pela solução Welington!

    Eu tb encontrei essa outra usando javascript jogando o valor num hiddenfield e depois capturando esse valor no code-behind:

    aspx:

    <script type="text/javascript" language="javascript">
        function MessageBoxYesNo(message) {
            var messageBoxYesNoResult = confirm(message);
                document.getElementById('<%=hfMessageBoxYesNoResult.ClientID %>').value = messageBoxYesNoResult;
        }
    </script>

    <asp:HiddenField ID="hfMessageBoxYesNoResult" runat="server" />

    code-behind:

    //setar mensagem para a dialog box
    btnTeste.OnClientClick = "return MessageBoxYesNo('Mensagem de Teste')";

    if (Convert.ToBoolean(hfMessageBoxYesNoResult.Value)) {
        //sim
    }
    else {
        //não
    }

    bjos

    Thursday, March 07, 2013 11:39 PM

All replies

  • Olá Juliana,

    fiz exemplo aqui Jquery.

    CodeBeside

    <body>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#opendialog").click(function () {
                    $("#modal").dialog({
                        resizable: false,
                        height: 140,
                        modal: true,
                        buttons: {
                            "sim": function () {
                                $(this).dialog("close");
                                //adiciona s no hidden
                                $("#selecao").attr("value", "s");
                                //faz um postback para servidor
                                document.forms["form1"].submit();
                            },
                            Cancel: function () {
                                $(this).dialog("close");
                                //adiciona n no hidden
                                $("#selecao").attr("value", "n");
                                //faz um postback para servidor
                                document.forms["form1"].submit();
                            }
                        }
                    });
                });
            });
        </script>
        <form id="form1" runat="server">
            <%-- Abre o dialog --%>
            <input id="opendialog" type="button" value="abre modal" />
            <div id="modal"></div>
            <%-- vair ser recuperado no servidor, so para quarda valor --%>
            <input type="hidden" name="selecao" id="selecao" />
        </form>
    </body>

    CodeBehind

    protected void Page_Load(object sender, EventArgs e)
            {
                //verifica qual letra que esta dentro do hidden
                switch (Request["selecao"])
                {
                    case "s":
                        //foi pressionado sim
                        break;
                    case "n":
                        //foi pressionado nao
                        break;
                }
            }
    Não esqueça de referenciar Jquery e Jquery UI
    Espero ter ajudado
    Monday, March 04, 2013 11:25 PM
  • Obrigada pela solução Welington!

    Eu tb encontrei essa outra usando javascript jogando o valor num hiddenfield e depois capturando esse valor no code-behind:

    aspx:

    <script type="text/javascript" language="javascript">
        function MessageBoxYesNo(message) {
            var messageBoxYesNoResult = confirm(message);
                document.getElementById('<%=hfMessageBoxYesNoResult.ClientID %>').value = messageBoxYesNoResult;
        }
    </script>

    <asp:HiddenField ID="hfMessageBoxYesNoResult" runat="server" />

    code-behind:

    //setar mensagem para a dialog box
    btnTeste.OnClientClick = "return MessageBoxYesNo('Mensagem de Teste')";

    if (Convert.ToBoolean(hfMessageBoxYesNoResult.Value)) {
        //sim
    }
    else {
        //não
    }

    bjos

    Thursday, March 07, 2013 11:39 PM