none
mensaje confim javascript c# asp .net capturar mensaje aceptar y cancelar

    Question

  • buenas tarder amigos del foro tengo un pequeño problema se los comento lo que necesito es k con un mensaje confirm hacer un proceso de captura de datos a mi base de datos en sql server. ya tengo mi mensaje pero al momento de darle aceptar no me hace la captura de datos se los muestro.

    primero lo creo en el diseño de mi pagina

    function

    Confirm() {

              

    varconfirm_value = document.createElement("INPUT");

               confirm_value.type =

    "hidden";

               confirm_value.name =

    "confirm_value";

              

    if(confirm("Deseas ingresarlo nuevamente?")) {

                   confirm_value.value =

    "Aceptar";

               }

    else{

                   confirm_value.value =

    "No";

               }

               document.forms[0].appendChild(confirm_value);

           }

    despues en mi codigo lo mando llamar de esta forma

     

    stringscrip = "<script type='text/javascript'>Confirm()</script>";

                   

    ScriptManager.RegisterStartupScript(this, typeof(Page), "confirm", scrip, false);

                   

    stringconfirmValue = Request.Form["confirm_value"];

                   

    if(confirmValue == "Aceptar")

                    {

                      

                        lRpta = SisFun.InsDelUpd(

    "Update TbPedidoCatalogo set "+ cN + "="+ cN + "+1 ,Total=Total+1 where CodProd='"+ cCodProd + "' and CodSucursal='"+ cCodSuc + "'and codcli=1");

                       

    if(lRpta == true)

                        {

                            Label9.Visible =

    true;

                            Label9.Text =

    "Producto Modificado Exitosamente";

                        }

                       

    else


                        {

                            Label9.Visible =

    true;

                            Label9.Text =

    "Hubo un error en el proceso";

                        }

                    }

    si me muestra el boton pero en mi base de datos no se actualiza no lo puse directamente en mi boton por que estan ingresado en un datalist me podrian ayudar por favor se los agradecere

    Thursday, March 21, 2013 6:18 PM

Answers

  • Yo haría lo siguiente:

    Definiria una funcion js PedirConfirmacion()  que realiza un postback y en el evento Page_Load() de la página aspx verifico que se debe hacer la operación en bbdd y muestro un alert de confirmación. 

    Para ello 

    Función javascript que se llama en el onClientClick() del botón 

    function pedirConfirmacion() {
    	if (confirm("Do you want to save data?")) {
    		__doPostBack('', 'SaveData'); //"SaveData" es un argumento que se chequeará en el Load de la página
    	}	
    }

    En el Page_Load()

    protected void Page_Load(object sender, EventArgs e)
    {
    	ClientScript.GetPostBackEventReference(this, string.Empty);
    
    	if (this.IsPostBack)
    	{
    		string arg = Page.Request.Params.Get("__EVENTARGUMENT");
    		if (arg != null && 
    			arg != string.Empty &&
    			arg == "SaveData")
    		{
    			//***** REALIZAR SALVADO EN BASE DE DATOS!!!!!!!
    			 tabla = SisFun.Tabla("select * from TbPedidoCatalogo where CodProd='" + cCodProd + "' and CodSucursal='" + cCodSuc + "'");
    
                if (tabla.Rows.Count <= 0)
                {
                    lRpta = SisFun.InsDelUpd("Insert Into TbPedidoCatalogo (CodProd,codcli,CodSucursal,Fecha,n1,Total) values('" + cCodProd + "', 000001 ,'" + cCodSuc + "','" + DateTime.Now + "', 1, 1 )");
    
                    if (lRpta == true)
                    {
    
                        Label9.Visible = true;
                        Label9.Text = "Producto Insertado Exitosamente en el Carrito";
                    }
                    else
                    {
                        Label9.Visible = true;
                        Label9.Text = "Hubo un error en el proceso";
                    }
                }
                else
                {               
    				lRpta = SisFun.InsDelUpd("Update TbPedidoCatalogo set " + cN + "=" + cN + "+1 ,Total=Total+1 where CodProd='" + cCodProd + "' and CodSucursal='" + cCodSuc + "'and codcli=1");
    				if (lRpta == true)
    				{
    					Label9.Visible = true;
    					Label9.Text = "Producto Modificado Exitosamente";
    				}
    
    
    				else
    				{
    					Label9.Visible = true;
    					Label9.Text = "Hubo un error en el proceso";
    				}                
                }
    
    			string scriptConfirmacion = "<script type='text/javascript'>alert('" + 			Label9.Text + "');</script>";
    			
    			
    			//Mostrar alert infgormando del cómo acabó la operación
    			ScriptManager.RegisterStartupScript(this, typeof(Page), "Confirmación", scriptConfirmacion, false);
    		}
    	}
    }



    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos





    Tuesday, March 26, 2013 9:22 PM

All replies

  • lo que buscas es que se muestre un mensjae de confirmacion que luego se tome en el servidor ? para poder realizar determinada accion

    si es asi eso no funciona

    porque muestra el mensaje pero no vuelves a realizar un postback al servidor

    no es que usas el ScriptManager.RegisterStartupScript

    lanza el alert confrmas y continua desde dodne quedaste, eso no funciona de es forma, tienes que volver a realziar un postback a otro evento en el servidor, quizas usando el _doPostback

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Thursday, March 21, 2013 6:33 PM
  • como se realiza eso la verdad no tengo idea
    Thursday, March 21, 2013 6:41 PM
  • si la ides es pedir confonfirmacion requieres hacerlo en dos etapas

    - la primera es la que creara el

    ScriptManager.RegisterStartupScript

    pero esta solo lanza el mensaje

    - la segunda despues de confirmar requiere realizar un nuevo postback al servidor a otor evento, por eso comente lo del _dopostBack

    porquetienes que invocar otro evento en el servidor para tomar la accion de confirmacion y seguir el proceso

    por lo que se requieren dos acciones y dos postback al servidor

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Thursday, March 21, 2013 7:08 PM
  • me podrias ayudar a hacerlo ya que nunca lo eh utilizado por favor
    Thursday, March 21, 2013 7:38 PM
  • hola a todos quiciera saber si exite alguna forma de hacer un menssaje de confirmacion que no sea en javascript o es su caso como realizarlo sin tener que poner el onClientClick ya que tengo esto pero no me funciona:

    creo mi mensaje de confirmacion:

    function

    Confirm() {

              

    varconfirm_value = document.createElement("INPUT");

               confirm_value.type =

    "hidden";

               confirm_value.name =

    "confirm_value";

              

    if(confirm("Do you want to save data?")) {

                   confirm_value.value =

    "Yes";

               }

    else{

                   confirm_value.value =

    "No";

               }

               document.forms[0].appendChild(confirm_value);

           }

    despues en un metodo llamo mi mensaje en mi javascript

    tring

    scrip = "<script type='text/javascript'>Confirm()</script>";

               

    ScriptManager.RegisterStartupScript(this, typeof(Page), "confirm", scrip, false);

    if (confirmValue == "Yes")
        {

    lRpta = SisFun.InsDelUpd(

    "Update TbPedidoCatalogo set "+ cN + "="+ cN + "+1 ,Total=Total+1 where CodProd='"+ cCodProd + "' and CodSucursal='"+ cCodSuc + "'and codcli=1");

                       

    if(lRpta == true)

                        {

                            Label9.Visible =

    true;

                            Label9.Text =

    "Producto Modificado Exitosamente";

                        }

     

                       

    else


                        {

                            Label9.Visible =

    true;

                            Label9.Text =

    "Hubo un error en el proceso";

                        }

        }

    no me muestra el mensajes ya que esta en un datalist quiciera saber una solucion grax

    Saturday, March 23, 2013 12:44 AM
  • protected void Page_Load(object sender, EventArgs e)
            {
              if (!IsPostBack)
                {
            botoneliminar.Attributes.Add("onclick", "return confirm('¿Realmente desea Eliminar Nombre: ?')");
                 }
             }

    Bueno aqui manda un mensaje de confirmacion al oprimir botoneliminar si indicas que si al cuadro de confirmacion se ejecuta el evento si indicas que no no ejecuta el evento


    • Edited by yuliuxs Saturday, March 23, 2013 1:01 AM
    Saturday, March 23, 2013 12:56 AM
  • Hola,

    Realmente es un poco complicado leer el codigo que pones, te recomiendo que lo pases a un bloc de notas y luego lo pegues en el foro sera mas sencillo.

    Por otro lado, si lo que quieres es poder lanzar un mensaje de confirmacion en un datalist no deberias tener problemas con javascript, te dejo un ejemplo

    1. <ItemTemplate>  
    2. <tr>  
    3.     <td><%# DataBinder.Eval(Container.DataItem, "ProductName") %></td>  
    4.     <td><%# DataBinder.Eval(Container.DataItem, "UnitPrice") %></td>  
    5.     <td>  
    6.         <asp:LinkButton ID="lnkEdit"   
    7.             runat="server"   
    8.             CommandName="edit">  
    9.             Edit  
    10.         </asp:LinkButton>          
    11.          |   
    12.   
    13.         <asp:LinkButton   
    14.             ID="lnkDelete"   
    15.             runat="server"   
    16.             CommandName="delete"   
    17.             OnClientClick="javascript:return confirm('Esta seguro que desea eliminar el producto?');">  
    18.             Delete  
    19.         </asp:LinkButton>  
    20.     </td>  
    21. </tr>  
    22. </ItemTemplate>

    O bien si quieres hacerlo con un boton, te dejo una guia paso a paso de como hacerlo

    Trabajando con el datalist

    Saludos,



    Jason Ulloa
    Mi Blog San José, Costa Rica

    Saturday, March 23, 2013 1:00 AM
  • en que parte ?

    lo priemro que deberias confirmar es si entiendes lo que se plantea, porque sino va as er complciado de poder seguir

    necesitas dos viejes al servidor para poder realizar una accion en el server volver pedir conformacion y volver a ir al servidor, esa parte se entiende?

    o sea no puedes continuar donde dejaste, esto no es una aplicacion desktop

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Saturday, March 23, 2013 3:00 AM
  • bueno para los que me comentan que se ve mi codigo que no se entiende creo mi mensaje de confirmacion en mi diseño de mi pagina de aspx

    function Confirm() {

               var confirm_value = document.createElement("INPUT");

               confirm_value.type = "hidden";

               confirm_value.name = "confirm_value";

               if (confirm("Do you want to save data?")) {

                   confirm_value.value = "Yes";

               } else {

                   confirm_value.value = "No";

               }

               document.forms[0].appendChild(confirm_value);
           }

    esto se encuentra en mi diseño de mi pagina

    despues lo que intento hacer es llamarlo desde codigo para hacer la validacion si es Yes que actualiza y si es No que no haga nada aqui el codigo

    string scrip = "<script type='text/javascript'>alerta()</script>";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", scrip, false);
                    string mng= Request.Form["confirm_value"];
                    if (mng == "Yes")
                    {
                        lRpta = SisFun.InsDelUpd("Update TbPedidoCatalogo set " + cN + "=" + cN + "+1 ,Total=Total+1 where CodProd='" + cCodProd + "' and CodSucursal='" + cCodSuc + "'and codcli=1");
                        if (lRpta == true)
                        {
                            Label9.Visible = true;
                            Label9.Text = "Producto Modificado Exitosamente";
                        }


                        else
                        {
                            Label9.Visible = true;
                            Label9.Text = "Hubo un error en el proceso";
                        }

                    }

    No lo mando llamar con el onClientClick desde mi boton ya que mis botones se encuentran en un datalist. el problema es que no me hace mi comparacion para que una vez que aparesca y le de Aceptar me actualice.

    Leandro Tuttini lo que me comentas de 2 viajes al servidor no lo entiendo la verdad si es posible me podrias ayudar a resolver mi problema en dado caso de que la respuesta sea positiva yo te doy acceso a todo lo que necesites gracias

    Monday, March 25, 2013 4:20 PM
  • es que esto

    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", scrip, false);
                    string mng= Request.Form["confirm_value"];

    no lo puede poner junto, no funciona asi un entorno web, esto no es winforms

    private void button1_click(..)
    {
    
    	string scrip = "<script type='text/javascript'>alerta()</script>";
    	ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", scrip, false);
    
    }
    
    private void button2_click(..)
    
    	string mng= Request.Form["confirm_value"];
    	if (mng == "Yes")
    	{
    		lRpta = SisFun.InsDelUpd("Update TbPedidoCatalogo set " + cN + "=" + cN + "+1 ,Total=Total+1 where CodProd='" + cCodProd + "' and CodSucursal='" + cCodSuc + "'and codcli=1");
    		if (lRpta == true)
    		{
    			Label9.Visible = true;
    			Label9.Text = "Producto Modificado Exitosamente";
    		}
    
    
    		else
    		{
    			Label9.Visible = true;
    			Label9.Text = "Hubo un error en el proceso";
    		}
    
    	}
    
    }

    dentro de alertas en el codiog cliente javascript tiene que hace el postback automatico usan _doPostBack, para invocar al segundo evento

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Monday, March 25, 2013 4:40 PM
  • te voy a mostrar como esta contituido mi codificacion:

    aqui esta mi metodo

     protected void AgregarCompra(string cCodProd, string cCodSuc,string cN,string cNum)
        {
            bool lRpta = false;
           
            if (Convert.ToInt32(cNum) == 0)
            {

                string scrip = "<script type='text/javascript'>alerta()</script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", scrip, false);
            }
            else
            {
                tabla = SisFun.Tabla("select * from TbPedidoCatalogo where CodProd='" + cCodProd + "' and CodSucursal='" + cCodSuc + "'");

                if (tabla.Rows.Count <= 0)
                {
                    lRpta = SisFun.InsDelUpd("Insert Into TbPedidoCatalogo (CodProd,codcli,CodSucursal,Fecha,n1,Total) values('" + cCodProd + "', 000001 ,'" + cCodSuc + "','" + DateTime.Now + "', 1, 1 )");

                    if (lRpta == true)
                    {

                        Label9.Visible = true;
                        Label9.Text = "Producto Insertado Exitosamente en el Carrito";
                    }
                    else
                    {
                        Label9.Visible = true;
                        Label9.Text = "Hubo un error en el proceso";
                    }
                }
                else
                {
                  
                        lRpta = SisFun.InsDelUpd("Update TbPedidoCatalogo set " + cN + "=" + cN + "+1 ,Total=Total+1 where CodProd='" + cCodProd + "' and CodSucursal='" + cCodSuc + "'and codcli=1");
                        if (lRpta == true)
                        {
                            Label9.Visible = true;
                            Label9.Text = "Producto Modificado Exitosamente";
                        }


                        else
                        {
                            Label9.Visible = true;
                            Label9.Text = "Hubo un error en el proceso";
                        }

                   
                }
            }
        }

    aqui esta mi datalist cuando selecciona un boton

     protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
        {
            DataListItem it = (DataListItem)((Control)(e.CommandSource)).Parent;
            string CodSuc = drplSucursal.Text;
            string CodProd = (it.FindControl("CodProdLabel") as Label).Text;      
            if (e.CommandName == "Canasta1")
            {
                string Num = (it.FindControl("n1Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n1", Num);
               
            }
          
            if (e.CommandName == "Canasta2")
            {
                string Num = (it.FindControl("n2Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n2", Num);
              
            }
            if (e.CommandName == "Canasta3")
            {
                string Num = (it.FindControl("n3Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n3", Num);
               
            }
            if (e.CommandName == "Canasta4")
            {
                string Num = (it.FindControl("n4Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n4", Num);
            }
            if (e.CommandName == "Canasta5")
            {
                string Num = (it.FindControl("n5Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n5", Num);
            }
            if (e.CommandName == "Canasta6")
            {
                string Num = (it.FindControl("n6Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n6", Num);
            }
            if (e.CommandName == "Canasta7")
            {
                string Num = (it.FindControl("n7Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n7", Num);
            }
            if (e.CommandName == "Canasta8")
            {
                string Num = (it.FindControl("n8Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n8", Num);
            }
            if (e.CommandName == "Canasta9")
            {
                string Num = (it.FindControl("n9Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n9", Num);
            }
            if (e.CommandName == "Canasta10")
            {
                string Num = (it.FindControl("n10Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n10", Num);
            }
            if (e.CommandName == "Canasta11")
            {
                string Num = (it.FindControl("n11Label") as Label).Text;
                AgregarCompra(CodProd, CodSuc, "n11", Num);
            }
        }

    con lo de postback me podrias ayudar no lo etiendo muy bien grax

    Monday, March 25, 2013 4:54 PM
  • Se supone que el mensaje de confirmacion debuelve true si precionamos aceptar y false si precionamos calncelar como le podria hacer para que me al momento que de aceptar me mande true e ingrese a mi update
    Monday, March 25, 2013 5:43 PM
  • Yo haría lo siguiente:

    Definiria una funcion js PedirConfirmacion()  que realiza un postback y en el evento Page_Load() de la página aspx verifico que se debe hacer la operación en bbdd y muestro un alert de confirmación. 

    Para ello 

    Función javascript que se llama en el onClientClick() del botón 

    function pedirConfirmacion() {
    	if (confirm("Do you want to save data?")) {
    		__doPostBack('', 'SaveData'); //"SaveData" es un argumento que se chequeará en el Load de la página
    	}	
    }

    En el Page_Load()

    protected void Page_Load(object sender, EventArgs e)
    {
    	ClientScript.GetPostBackEventReference(this, string.Empty);
    
    	if (this.IsPostBack)
    	{
    		string arg = Page.Request.Params.Get("__EVENTARGUMENT");
    		if (arg != null && 
    			arg != string.Empty &&
    			arg == "SaveData")
    		{
    			//***** REALIZAR SALVADO EN BASE DE DATOS!!!!!!!
    			 tabla = SisFun.Tabla("select * from TbPedidoCatalogo where CodProd='" + cCodProd + "' and CodSucursal='" + cCodSuc + "'");
    
                if (tabla.Rows.Count <= 0)
                {
                    lRpta = SisFun.InsDelUpd("Insert Into TbPedidoCatalogo (CodProd,codcli,CodSucursal,Fecha,n1,Total) values('" + cCodProd + "', 000001 ,'" + cCodSuc + "','" + DateTime.Now + "', 1, 1 )");
    
                    if (lRpta == true)
                    {
    
                        Label9.Visible = true;
                        Label9.Text = "Producto Insertado Exitosamente en el Carrito";
                    }
                    else
                    {
                        Label9.Visible = true;
                        Label9.Text = "Hubo un error en el proceso";
                    }
                }
                else
                {               
    				lRpta = SisFun.InsDelUpd("Update TbPedidoCatalogo set " + cN + "=" + cN + "+1 ,Total=Total+1 where CodProd='" + cCodProd + "' and CodSucursal='" + cCodSuc + "'and codcli=1");
    				if (lRpta == true)
    				{
    					Label9.Visible = true;
    					Label9.Text = "Producto Modificado Exitosamente";
    				}
    
    
    				else
    				{
    					Label9.Visible = true;
    					Label9.Text = "Hubo un error en el proceso";
    				}                
                }
    
    			string scriptConfirmacion = "<script type='text/javascript'>alert('" + 			Label9.Text + "');</script>";
    			
    			
    			//Mostrar alert infgormando del cómo acabó la operación
    			ScriptManager.RegisterStartupScript(this, typeof(Page), "Confirmación", scriptConfirmacion, false);
    		}
    	}
    }



    Si se solucionó tu consulta no olvides marcar la respuesta. Saludos





    Tuesday, March 26, 2013 9:22 PM
  • para esta es la mejor respuesta, saludos y gracias.
    Sunday, June 30, 2013 11:19 PM