Usuário com melhor resposta
Bootbox com ASP.NET e retorno do bootbox.confirm() no code-behind

Pergunta
-
Estou tendo dificuldades para realizar a chamada de uma função javascript a partir do evento OnClientClick de um botão em ASP.NET. Não consegui decifrar o que pode estar acontecendo, pois já consegui rodar a função a partir do evento antes e, de repente, ela simplesmente parou de funcionar.
Além disso, caso consigam me ajudar, como faço para receber o retorno dessa função no codebehind para manipular minha deleção? Exemplo: Se true efetuo a deleção, se false nada acontece.
<script src="../Scripts/bootbox.min.js"></script> <script type="text/javascript"> function retornar() { bootbox.confirm("Deseja realmente excluir este registro ?", function (retorno) { if (retorno == true) { alert("True"); return true; } else { alert("False"); return false; } }); } </script> <asp:Button ID="btnExcluir" CssClass="btn btn-default" Width="150px" runat="server" OnClientClick="retornar();" OnClick="btnExcluir_Click" Text="Excluir" />
Respostas
-
Veja o que você pode estar fazendo de errado. Segue um exemplo para você fazer numa tela nova (para ver o efeito)
ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="PH.Framework.UI.WebForm3" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function retornar() { if (window.confirm("Deseja realmente excluir este registro ?")) return true; else return false; } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" OnClientClick="return retornar();" /> </div> </form> </body> </html>
CS
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace PH.Framework.UI { public partial class WebForm3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Page.ClientScript.RegisterStartupScript(this.GetType(), "foi", "window.alert('excluiu')", true); } } }
- Marcado como Resposta Luiz Antonio Lima terça-feira, 23 de dezembro de 2014 19:49
Todas as Respostas
-
-
Continua não executando quando passo a função direto no evento, porém, consegui a partir do code-behind da seguinte maneira:
protected void btnExcluir_Click(object sender, EventArgs e) { Page.ClientScript.RegisterStartupScript(this.GetType(), "script1", "return retornar();", true); }
Porque isso acontece? Na minha concepção o script deveria ser executado de uma forma ou de outra, correto? Além disso, tem ideia de como faço para pegar o retorno da função a partir do code-behind?
-
Veja o que você pode estar fazendo de errado. Segue um exemplo para você fazer numa tela nova (para ver o efeito)
ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="PH.Framework.UI.WebForm3" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function retornar() { if (window.confirm("Deseja realmente excluir este registro ?")) return true; else return false; } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" OnClientClick="return retornar();" /> </div> </form> </body> </html>
CS
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace PH.Framework.UI { public partial class WebForm3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { Page.ClientScript.RegisterStartupScript(this.GetType(), "foi", "window.alert('excluiu')", true); } } }
- Marcado como Resposta Luiz Antonio Lima terça-feira, 23 de dezembro de 2014 19:49