Foros del Web » Programando para Internet » ASPX (.net) »

Update Ajax

Estas en el tema de Update Ajax en el foro de ASPX (.net) en Foros del Web. Buenas , tengo 3 dropdownlist (DDL), 1 gridview, Proceso: Se selecciona el país, luego en el 2do DDL las provincias o estados de ese país ...
  #1 (permalink)  
Antiguo 26/09/2010, 17:21
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años, 7 meses
Puntos: 3
Pregunta Update Ajax

Buenas , tengo 3 dropdownlist (DDL), 1 gridview, Proceso: Se selecciona el país, luego en el 2do DDL las provincias o estados de ese país y en el 3ro DDL la regiones del estado seleccionado, funciona perfecto, peroooo el caso esta cuando no existe un Estado del País seleccionado, como hago para que el usuario ingrese el Estado del Pais seleccionado SIN abandonar el formulario, me hablaron del uso del Update de ajax pero no tengo idea de como hacerlo.
Alguien tiene una idea de como hacerlo???
  #2 (permalink)  
Antiguo 26/09/2010, 18:28
Avatar de SDEK  
Fecha de Ingreso: diciembre-2009
Ubicación: MX
Mensajes: 156
Antigüedad: 15 años
Puntos: 8
Respuesta: Update Ajax

Antes de echarle mano al asunto, me gustaria saber unas cosas:

El usuario que seleccione Pais > Estado , y en el DDLEstado NO existe un estado asociado al país:

1. ¿CUALQUIER usuario puede agregar un estado?

2. ¿Se debe Guardar en BD y actualizar el DDLEstado para que otros usuarios puedan ver el estado agregado?


* En el código de la aplicación: En caso de que las respuestas a las preguntas sean "SI", podrías ocultar un textbox y en caso de que el DDLEstado no tenga un item seleccionado, lo muestras y el usuario ingresa el nuevo estado.

* En la Base de datos: Recibe como parámetro en un Procedimiento Almacenado un "0" como como IddelEstado y NO lo utilices en la ejecución del procedimiento, haz un INSERTdel nuevo estado en la tabla 'Estados' y genera un nuevo ID para ese estado.

* Finalmente al vover a cargar el webform, cuando cargues los DDL´s, deberás ver el nuevo estado agregado.


* Mis sugerencias:

Crear un ABC para el catalogo de Países. Esto en un modulo o sección aparte dentro del mismo sistema.

Saludos,
__________________
Tecnologías de la Información
Karel Priego
| @karelpriego
  #3 (permalink)  
Antiguo 27/09/2010, 07:06
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Update Ajax

Cita:
Iniciado por SDEK Ver Mensaje
Antes de echarle mano al asunto, me gustaria saber unas cosas:

El usuario que seleccione Pais > Estado , y en el DDLEstado NO existe un estado asociado al país:

1. ¿CUALQUIER usuario puede agregar un estado?

2. ¿Se debe Guardar en BD y actualizar el DDLEstado para que otros usuarios puedan ver el estado agregado?


* En el código de la aplicación: En caso de que las respuestas a las preguntas sean "SI", podrías ocultar un textbox y en caso de que el DDLEstado no tenga un item seleccionado, lo muestras y el usuario ingresa el nuevo estado.

* En la Base de datos: Recibe como parámetro en un Procedimiento Almacenado un "0" como como IddelEstado y NO lo utilices en la ejecución del procedimiento, haz un INSERTdel nuevo estado en la tabla 'Estados' y genera un nuevo ID para ese estado.

* Finalmente al vover a cargar el webform, cuando cargues los DDL´s, deberás ver el nuevo estado agregado.


* Mis sugerencias:

Crear un ABC para el catalogo de Países. Esto en un modulo o sección aparte dentro del mismo sistema.

Saludos,

Es correcto la respuesta es SI a todo
Pero recuerda le das click al DDL país, debe aparecer los estados de ese país, pero el Estado que estoy buscando no esta cargado o agregado en el DDL estado, el usuario quiere cargarlo agregarlo sin salirse del formulario.
Habrá una forma de que el usuario escriba en el DDL estado y este se cargue automáticamente ??
  #4 (permalink)  
Antiguo 27/09/2010, 11:20
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 8 meses
Puntos: 30
Respuesta: Update Ajax

Algo así es lo que requieres:

http://aspalliance.com/1060_How_to_P...SPNET_1x2x.all
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #5 (permalink)  
Antiguo 28/09/2010, 07:59
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Update Ajax

Gracias Jaullo,como siempre pendiente de todo.
Bueno la idea que me diste esta buena pero no es lo busco. El detalle esta en que el usuario, en el momento de carga de sus datos al sistema (Formulario de Carga), quiere incluir un estado X sin tener que salirse del Formulario de Carga e ir al Formulario de Estado para incluir el estado X, luego volver al Formulario de Carga. Todo lo quiere hacerlo allí mismo.
Hice algo: coloque un DIV con 2 textbox y 2 botones (Visible=False), ademas al DDL de estado le incluí o agregue por programa un Ítem llamado "Estado No existe", cuando seleccionan al Item "Estado No existe", al DDL Estado lo pongo Invisible y Visible a los 2 textbox y 2 Botones, agrego el estado, pero no aparece en el DDL estado sino tengo que presionar F5 para que aparezca en el DDL Estado.
Como hago para refresque el DDL estado después de incluir???
  #6 (permalink)  
Antiguo 28/09/2010, 08:06
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años, 8 meses
Puntos: 30
Respuesta: Update Ajax

Tendrías que obligadamente hacer una llamada al procedimiento que carga en principio el DropDownList. Pero siempre refrescaría.

Lo mas conveniente sería que lo coloques dentro de un updatepanel, para evitar que se recargue toda la página y no pierdas los datos posteriores.
__________________
http://geekswithblogs.net/jaullo/Default.aspx
Si te he ayudado regalame Karma positivo!!!
  #7 (permalink)  
Antiguo 28/09/2010, 08:25
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Update Ajax

Cita:
Iniciado por jaullo Ver Mensaje
Tendrías que obligadamente hacer una llamada al procedimiento que carga en principio el DropDownList. Pero siempre refrescaría.

Lo mas conveniente sería que lo coloques dentro de un updatepanel, para evitar que se recargue toda la página y no pierdas los datos posteriores.
Eso es precisamente, un ejemplo de de Ajax updatepanel, como utilizarlo , soy muy pero muy novato trabajando con Ajax.
Un ejemplo (Codigo Visual studio 2005, sql 2005).
Gracias
  #8 (permalink)  
Antiguo 28/09/2010, 08:36
Avatar de SDEK  
Fecha de Ingreso: diciembre-2009
Ubicación: MX
Mensajes: 156
Antigüedad: 15 años
Puntos: 8
Respuesta: Update Ajax

Tendrías que ponerle un "AutoPostBack" al DropDrownList también. Y como dice jaullo, deberia estar dentro de un UpdatePanel.


Ejemplo del UpdatePanel con DDL´s:

Código aspx:
Ver original
  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %>
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4.  
  5. <html xmlns="http://www.w3.org/1999/xhtml" >
  6. <head runat="server">
  7.     <title></title>
  8. </head>
  9. <body>
  10.    
  11.     <form id="form1" runat="server">                  
  12.     <asp:ScriptManager runat="server" ID="scripmanager1"></asp:ScriptManager>                
  13.    
  14.     <div><h1>prueba de refresco de elementos en la pagina</h1></div>
  15.    
  16.     <!-- primer dropdownlist con el update panel -->
  17.     <asp:UpdatePanel ID="UpdatePanel1" runat="server">
  18.         <ContentTemplate>
  19.             <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
  20.                 onselectedindexchanged="DropDownList1_SelectedIndexChanged">
  21.                 <asp:ListItem Text="numero 1"></asp:ListItem>
  22.                 <asp:ListItem Text="numero 2"></asp:ListItem>
  23.                 <asp:ListItem Text="numero 3"></asp:ListItem>
  24.             </asp:DropDownList>
  25.         </ContentTemplate>
  26.  
  27.         <Triggers>
  28.             <asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="selectedindexchanged" />
  29.         </Triggers>
  30.     </asp:UpdatePanel>
  31.        
  32.     <!-- segundo dropdownlist con el update panel -->    
  33.     <asp:UpdatePanel ID="UpdatePanel2" runat="server">
  34.         <ContentTemplate>
  35.             <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="true"
  36.                 onselectedindexchanged="DropDownList2_SelectedIndexChanged">
  37.             </asp:DropDownList>
  38.         </ContentTemplate>
  39.        
  40.         <Triggers>
  41.             <asp:AsyncPostBackTrigger ControlID="DropDownList2" EventName="selectedindexchanged" />
  42.         </Triggers>
  43.     </asp:UpdatePanel>
  44.              
  45.     <!-- tercer dropdownlist con el update panel (este ya no refresca nada y no tiene trigger) -->        
  46.     <asp:UpdatePanel ID="UpdatePanel3" runat="server">
  47.         <ContentTemplate>        
  48.             <asp:DropDownList ID="DropDownList3" runat="server">
  49.             </asp:DropDownList>            
  50.         </ContentTemplate>
  51.     </asp:UpdatePanel>
  52.    
  53.    
  54.  
  55.     </form>
  56. </body>
  57. </html>


Código c#:
Ver original
  1. Página c#:
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Web;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8.  
  9. namespace WebApplication1
  10. {
  11.     public partial class _Default : System.Web.UI.Page
  12.     {
  13.         protected void Page_Load(object sender, EventArgs e)
  14.         {
  15.         }
  16.  
  17.         protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
  18.         {
  19.             DropDownList2.Items.Clear();
  20.             DropDownList2.Items.Add("numero 1");
  21.             DropDownList2.Items.Add("numero 2");
  22.             DropDownList2.Items.Add("numero 3");
  23.         }
  24.  
  25.         protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
  26.         {
  27.             DropDownList3.Items.Clear();
  28.             DropDownList3.Items.Add("numero 1");
  29.             DropDownList3.Items.Add("numero 2");
  30.             DropDownList3.Items.Add("numero 3");
  31.         }
  32.     }
  33. }

referencia: http://social.msdn.microsoft.com/For...6-6476f86fe617

Saludos,
__________________
Tecnologías de la Información
Karel Priego
| @karelpriego
  #9 (permalink)  
Antiguo 28/09/2010, 08:41
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Update Ajax

Gracias SDEK corriendo y practicando el ejemplo.
  #10 (permalink)  
Antiguo 29/09/2010, 17:22
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Update Ajax

Bueno mis pana, esto de ajax hay que tomarlo con calma. Tengo mi formulario con 3 DDL (Drop down list), mas un GV (GridView) quiero aplicarle el updatepanel de ajax y no doy pie con bola.
El formulario se presenta sin problema pero cuando le doy click al primer DDL, aparecen 3 DDL mas osea 6, no se donde, me imagino que lo tome de un ejemplo y lo pegue, lo hice a través de de HTML, lo busco en modo de diseño y NO los veos.
Total que mi formulario ya esta en producción y rehacerlo de nuevo da como dolor
Un ejemplo o un paso a paso

Corri el ejemplo y genera este ejemplo

'DropDownList1_SelectedIndexChanged' is not a member of 'ASP.default2_aspx'
el codigo del este error esta arriba SDEK

codigo de mi formulario de 3 DDL

<!-- primer dropdownlist con el update panel -->
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlpais" runat="server" AutoPostBack="true"
onselectedindexchanged="ddlpais_SelectedIndexChang ed">

</asp:DropDownList>
</ContentTemplate>

<Triggers>
<asp:AsyncPostBackTrigger ControlID="DropDownList1" EventName="selectedindexchanged" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<td style="width: 74px; height: 24px; text-align: center">
<asp:DropDownList ID="ddlregion" runat="server" AppendDataBoundItems="True" Width="185px" AutoPostBack="True"
onselectedindexchanged="ddlregion_SelectedIndexCha nged">
<asp:ListItem>Select</asp:ListItem>
</asp:DropDownList>
</td>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlregion" EventName="selectedindexchanged" />
</Triggers>
</asp:UpdatePanel>

<asp:UpdatePanel ID="UpdatePanel3" runat="server">
<ContentTemplate>
<td style="width: 271px; height: 24px; text-align: left">
<asp:DropDownList ID="ddlclte" runat="server" AppendDataBoundItems="True" Width="185px" AutoPostBack="True"
onselectedindexchanged="ddlclte_SelectedIndexChang ed">
<asp:ListItem>Select</asp:ListItem>
</asp:DropDownList>

</td>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlclte" EventName="selectedindexchanged" />
</Triggers>
</asp:UpdatePanel>

</tr>
<tr>


Gracias
  #11 (permalink)  
Antiguo 04/10/2010, 09:33
 
Fecha de Ingreso: mayo-2008
Mensajes: 353
Antigüedad: 16 años, 7 meses
Puntos: 3
Respuesta: Update Ajax

Poco a poco voy entiendo Ajax
Esta es la solución a este problema o un desconocimiento mio

Esto se hace con un Updatepanel de ajax, pero tenia un error y era que no colocaba los texboxs y los botones dentro de un UpdatePanel.
Si tienes un DDL dentro de UpdatePanel y quieres esconder colocarlo visible por ejemplo a un control X, al control X debes colocarlo también dentro de un UpdatePanel.Esto me fue útil para hacer los DDL en cascada sin usar el control de cascadding ajax
Saludos
fuentes_jesus yahoo com

Etiquetas: ajax, update, aspx
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:52.