Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-06-2005
selman selman is offline
Miembro
 
Registrado: jun 2005
Posts: 26
Poder: 0
selman Va por buen camino
Como encadenar DropDownList

Como esncadenar dos DropDownList de manera tal que al seleccionar en el primero solamante se muestren determinados items en el segundo.

Selman.
Responder Con Cita
  #2  
Antiguo 28-06-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No explicas mucho, pero, a ver si esto puede darte una idea. Vamos, al menos, de como yo haría algo que me imagino parecido a lo que precisas...

Inicia una nueva aplicación en Delphi y en el formulario sitúa dos "ComboBox". En el siguiente código se emplean los eventos "FormCreate" del formulario y "OnChange" del primero de los "ComboBox".

Código Delphi [-]
 const
   itemsCombo: array[0..1] of string = ('pares', 'impares');
   pares: array[0..4] of integer = (2, 4, 6, 8, 10);
   impares: array[0..4] of integer = (1, 3, 5, 7, 9);
 
 // Evento FormCreate
 //
 procedure TForm1.FormCreate(Sender: TObject);
 var
   i: integer;
 begin
   for i := 0 to High(itemsCombo) do
     ComboBox1.Items.Add(itemsCombo[i]);
   ComboBox1.ItemIndex := 0;
   ComboBox1.OnChange(Self);
 end;
 
 // Evento "OnChange" de ComboBox1
 //
 procedure TForm1.ComboBox1Change(Sender: TObject);
 var
   i: integer;
 begin
   ComboBox2.Items.Clear;
   case ComboBox1.ItemIndex of
     0: begin
          for i := 0 to High(pares) do
            ComboBox2.Items.Add(IntToStr(pares[i]));
        end;
     1: begin
          for i := 0 to High(impares) do
            ComboBox2.Items.Add(IntToStr(impares[i]));
        end;
   end;
 end;

Resumiendo: se llena con los elementos correspondientes el primero de los "ComboBox", se selecciona el primero de estos y se dispara el evento "OnChange".

En dicho evento (del primer "ComboBox") se mira por el índice del elemento seleccionado en el "ComboBox", de tal manera que si este es 0, inicializamos y llenamos el segundo "ComboBox" con números pares. Si el índice es el 1 asignamos al segundo "ComboBox" números impares.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 28-06-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
algo asi:
Código Delphi [-]

Procedure TForm1.ComboBox1Click(Sender : TObject);

Begin
  comboBox2.Items.Clear;
  case ComboBox1.ItemIndex of
    0 : // 'uno'
      Begin
        comboBox2.Items.Add('uno punto uno');
        comboBox2.Items.Add('uno punto dos');
        comboBox2.Items.Add('uno punto tres');
      End;
    1 :  // dos
      Begin
        comboBox2.Items.Add('dos punto uno');
        comboBox2.Items.Add('dos punto dos');
        comboBox2.Items.Add('dos punto tres');
      End;
end;

Al menos la idea no creo que cambie para punto net, quizas los eventos.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #4  
Antiguo 28-06-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Para .NET, David, para .NET... a ver si leemos más despacio... yo no sé entonces si el código de más arriba podrá valer o no... desconozco hasta qué punto Delphi para .NET es "igual" que Delphi para Win32.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 28-06-2005
selman selman is offline
Miembro
 
Registrado: jun 2005
Posts: 26
Poder: 0
selman Va por buen camino
Ok, gracias por la respuesta, pero como le cargo el Value al item, con el método Add cargo el Text del item pero me falta asignarle su Value.



Selman.
Responder Con Cita
  #6  
Antiguo 29-06-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
hablas de asp.net, o de una aplicacion win32?
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #7  
Antiguo 29-06-2005
selman selman is offline
Miembro
 
Registrado: jun 2005
Posts: 26
Poder: 0
selman Va por buen camino
De asp.net

Selman
Responder Con Cita
  #8  
Antiguo 29-06-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
ponle el autopostback del primero a true, y programa el evento SelectedIndexChanged del dropdownlist para capturar el valor que se ha cambiado, y refrescar el otro dropdrownlist.

Igual, nos muestras algo de codigo de lo que quieres hacer ?
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #9  
Antiguo 29-06-2005
selman selman is offline
Miembro
 
Registrado: jun 2005
Posts: 26
Poder: 0
selman Va por buen camino
Estoy trabando con Delphi 2005, desarrollando una aplicación en asp.net. En tiempo de diseño el objeto dropdownlist en su ListItem Collection de cada item tiene tres propiedades

-Selected

-Text

-Value



Con los comentarios de códigos anteriores que me han proporcionado ustedes puedo cargarle en tiempo de ejecución los Text del dropdownlist con el metodo Add, pero me falta como pasarle las otras dos propiedades, Selected y Value
Responder Con Cita
  #10  
Antiguo 30-06-2005
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
el metodo Add del dropdownlist, acepta como parametro un objeto del tipo ListItem, que a su vez en su constructor acepta los valores de text y value que mencionas. Es mas o menos asi (si la memoria no me falla):

DropDownList1.Items.Add(New ListItem("texto", "valor"));

Si quieres seleccionar un item en especifico:

DropDownList1.SelectedIndex = indice;


Te sirve?
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #11  
Antiguo 30-06-2005
selman selman is offline
Miembro
 
Registrado: jun 2005
Posts: 26
Poder: 0
selman Va por buen camino
Gracias Hector, ya quedó con este codigo.


procedure TWebForm1.AgregaLista (text : string; valor : string);
var
Item : ListItem;
begin
Item := ListItem.Create;
Item.Text := text;
Item.Value := valor;
forma_pago.Items.Add(Item);
Item.Free;
end;

procedure TWebForm1.tipo_cliente_SelectedIndexChanged(sender: System.Object;
e: System.EventArgs);
begin
forma_pago.Items.Clear;
case tipo_cliente.SelectedIndex of
0: begin
AgregaLista ('50 % anticipo y 50 % a la entrega', '1');
AgregaLista ('100 % de anticipo', '2');
AgregaLista ('Tarjeta American Express 50/50', '30');
AgregaLista ('Tarjeta American Express 100 %', '31');
AgregaLista ('Tarjeta American Express 50/50 a 6 meses', '32');
AgregaLista ('Tarjeta American Express 100 % a 6 meses', '33');
AgregaLista ('Tarjeta American Express 50/50 a 9 meses', '34');
AgregaLista ('Tarjeta American Express 100 % a 9 meses', '35');
end;
1,2,3,4,5,6:
begin
AgregaLista ('50 % anticipo y 50 % a la entrega', '1');
end;
end;
end;

Última edición por selman fecha: 30-06-2005 a las 18:24:03.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:43:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi