Usuário com melhor resposta
Como capturar o valor Sim ou Não de uma dialog modal no Code-Behind: Server Side?

Pergunta
-
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
Respostas
-
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- Editado welington jrModerator segunda-feira, 4 de março de 2013 23:26
- Sugerido como Resposta Vitor Mendes segunda-feira, 4 de março de 2013 23:53
- Marcado como Resposta Felipo Gonçalves terça-feira, 5 de março de 2013 18:30
-
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- Marcado como Resposta Juliana Machado quinta-feira, 7 de março de 2013 23:41
Todas as Respostas
-
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- Editado welington jrModerator segunda-feira, 4 de março de 2013 23:26
- Sugerido como Resposta Vitor Mendes segunda-feira, 4 de março de 2013 23:53
- Marcado como Resposta Felipo Gonçalves terça-feira, 5 de março de 2013 18:30
-
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- Marcado como Resposta Juliana Machado quinta-feira, 7 de março de 2013 23:41