Foros del Web » Programación para mayores de 30 ;) » .NET »

Rellenar Text Box Segun Combo

Estas en el tema de Rellenar Text Box Segun Combo en el foro de .NET en Foros del Web. Hola, tengo una duda.. Necesito rellenar un text Box, segun la opcion seleccionada en un combo!!! Imaginaros que por ejemplo tengo un combo con 2 ...
  #1 (permalink)  
Antiguo 04/12/2008, 08:13
 
Fecha de Ingreso: octubre-2008
Mensajes: 31
Antigüedad: 15 años, 6 meses
Puntos: 0
Rellenar Text Box Segun Combo

Hola, tengo una duda..

Necesito rellenar un text Box, segun la opcion seleccionada en un combo!!!

Imaginaros que por ejemplo tengo un combo con 2 nombres, pepe i mario...

Si elijo pepe, el textbox tendria que poner 20 años por ejemplo i si elijo mario 17 años...


Estoi trabajando con asp y c#.

En c# havia pensado utilizar una funcion con una serie de if

pero no se como poner la condicion seria algo asi;

imaginemos que el combo se llama combo1, i el textbox se llama textbox1

i los diferentes listitems de el combo son listItem1 value="1"
listItem2 value="2"

seria algo asi:

If(Combo1 == value.1){
textbox1 = "60"
}

pero la condicion de el if no esta bien verdad??? como seria?? nunca he trabajado con combos... gracias
  #2 (permalink)  
Antiguo 04/12/2008, 10:46
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Rellenar Text Box Segun Combo

El DropDownList (lo mismo q el ComboBox, pero en ambiente WEB) tiene una serie de eventos q puedes usar con múltiples propósitos. En tu caso te recomiendo q leas sobre DropDownList_SelectedIndexChanged en MSDN

Ya con eso puedes implementar q con cada cambio de Indice de tu combo muestre lo q deseas en tus TextBox, pero no es nada dificil:
Código:
 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {
        switch (DropDownList1.SelectedIndex)
        {
            case 1: TextBox1.Text = "20"; break;
            case 2: TextBox1.Text = "30"; break;
            default: TextBox1.Text = "10"; break;
        }
    }
Si sigues con alguna duda, aqui seguimos =)
  #3 (permalink)  
Antiguo 04/12/2008, 11:05
 
Fecha de Ingreso: octubre-2008
Mensajes: 31
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Rellenar Text Box Segun Combo

Hola.. Antes de nada agradecerte que me ayas ayudado... estamos empezando i ahora todo me parece un mundo, por mucha documentacion que lea.. :P

Lo he echo tal i como me decias... i he leido informacion acerca de el evento onselectedindexchange..

Pero tengo una duda..

La funcion la tengo clara... pero en el la parte de codigo asp.. donde defino el dropdown, tengo que añadirle el evento onselectindexchange con el nombre de la funcion de codigo??

Mira lo tengo de la siguiente manera estructurado:

CODIGO C#

protected void ddlTipoAreaAcustica_SelectedIndexChanged(object sender, EventArgs e)
{
switch (ddlTipoAreaAcustica.SelectedIndex)
{
case 1: tbNivelDia.Text = "65"; break;
case 2: tbNivelDia.Text = "75"; break;
case 3: tbNivelDia.Text = "73"; break;
case 4: tbNivelDia.Text = "70"; break;
case 5: tbNivelDia.Text = "60"; break;
default: tbNivelDia.Text = "0" ; break;
}
}

CODIGO ASP

<asp:DropDownList ID="ddlTipoAreaAcustica" OnSelectedIndexChanged="ddlTipoAreaAcustica_Select edIndexChanged" runat="server" CssClass="CaixaText" Width="400px">
<asp:ListItem Value="1">Uso residencial</asp:ListItem>
<asp:ListItem Value="2">Uso Industrial</asp:ListItem>
<asp:ListItem Value="3">Uso recreativo y de espectáculos</asp:ListItem>
<asp:ListItem Value="4">Uso terciario (Diferente de los anteriores)</asp:ListItem>
<asp:ListItem Value="5">Uso sanitario, docente y cultural</asp:ListItem>
<asp:ListItem Value="6">Afectados por infraestructuras de transporte u otros</asp:ListItem>

</asp:DropDownList>&nbsp;
</li>
<li>&nbsp;Ld&nbsp;<asp:TextBox ID="tbNivelDia" runat="server" Width="50px" Text="" ReadOnly="true" CssClass="CaixaText"/>&nbsp;dBA&nbsp;<asp:CheckBox
ID="cbCambiarNivelDia" runat="server" Text="Editar valor" Checked="false" />
</li>
<li>




No se que me falla... pero no me funciona!!

Por ultimo, me gustaria que en el caso de el default, en vez de poner un valor me activara un checkbox...

ese checbox lo tengo como cheked=false

si pusiera default: "idcheckbox".checked = "true"; serviria???

Gracias
  #4 (permalink)  
Antiguo 04/12/2008, 11:13
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Rellenar Text Box Segun Combo

Intenta algo... en la vista de Diseño dale doble click al DDL y te debe generar por default el código del SelectedIndexChanged, lo cual tmb genera por default la referencia en el HTML del objeto a ese evento.
Otra cosa, recuerda q los controles en ASP.Net pueden o no generar un PostBack, en este caso debes activárselo a tu DDL. Como? Solo agrégale AutoPostBack = "true" en su HTML correspondiente.

Y en cuanto a lo del CheckBox, debe ser suficiente asi como lo comentas =)
Seguimos
  #5 (permalink)  
Antiguo 05/12/2008, 03:13
 
Fecha de Ingreso: octubre-2008
Mensajes: 31
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Rellenar Text Box Segun Combo

Hola... SI SEÑOR!!!! :p

Funciona bien... es decir hace exactamente lo que quiero...

Finalmente lo he echo de la siguiente forma:

PARTE DE ASP:

li>
<asp:DropDownList ID="ddlTipoAreaAcustica" runat="server" CssClass="CaixaText" AutoPostBack="true" Width="400px" OnSelectedIndexChanged="ddlTipoAreaAcustica_Select edIndexChanged">
<asp:ListItem Value="1">Suelo de uso residencial</asp:ListItem>
<asp:ListItem Value="2">Suelo de uso de actividad industrial</asp:ListItem>
<asp:ListItem Value="3">Suelo de uso de actividad comercial</asp:ListItem>
<asp:ListItem Value="4">Suelo de uso de actividad deportiva</asp:ListItem>
<asp:ListItem Value="5">Zona con ruido exterior dominante de aeronaves</asp:ListItem>
<asp:ListItem Value="6">Zona con ruido exterior dominante de automóviles</asp:ListItem>

</asp:DropDownList>&nbsp;
</li>
<li>&nbsp;Ld&nbsp;<asp:TextBox ID="tbNivelDia" runat="server" Width="50px" Text="" ReadOnly="true" CssClass="CaixaText"/>&nbsp;dBA&nbsp;<asp:CheckBox
ID="cbCambiarNivelDia" runat="server" Text="Editar valor" Checked="false" />
</li>
<li>


PARTE DE C#

protected void ddlTipoAreaAcustica_SelectedIndexChanged(object sender, EventArgs e)
{
switch (ddlTipoAreaAcustica.SelectedIndex)
{
case 1: tbNivelDia.Text = "75"; break;
case 2: tbNivelDia.Text = "73"; break;
case 3: tbNivelDia.Text = "70"; break;
case 4: tbNivelDia.Text = "60"; break;
case 5: cbCambiarNivelDia.Checked = true; break;
default: tbNivelDia.Text = "65"; break;
}
if (cbCambiarNivelDia.Checked == true)
{
tbNivelDia.Text = "";
tbNivelDia.ReadOnly = false;
}

}





Funciona perfectamente.... PEROOOOOOOOOOOO jaja ahora como curioso que soy... tengo una pregunta... por lo que veo, de esta manera me refresca la pagina entera, cada vez que cambio una opcion de el combo...:P

Como seria para conseguir el mismo codigo en javascript???

tendria que hacer la funcion javascript i llamarla desde el metodo OnSelectedIndexChanged="???????

nunca he traajado con javascropt..
  #6 (permalink)  
Antiguo 05/12/2008, 11:54
Avatar de jlbautista  
Fecha de Ingreso: enero-2007
Ubicación: Durango, Méx.
Mensajes: 175
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Rellenar Text Box Segun Combo

No se si hayas leido, escuchado, e implementado AJAX... es una herramienta potente en cuanto a resolver 'ciertas' situaciones de los ida/vuelta al server.

Creo q eso podría servirte bastante bien.
Implementar una función con Javascript tmb es buena opción, cuestión q cheques como se manejan las propiedades de los DDL (o ComboBox, q ya habiamos dicho, es lo mismo, para fines prácticos)

Pregúntale a San Google, seguro q te dará muy buenas opciones.

Un consejito pa reducir un tanto tu código
Código:
PARTE DE C#

protected void ddlTipoAreaAcustica_SelectedIndexChanged(object sender, EventArgs e)
{
   switch (ddlTipoAreaAcustica.SelectedIndex)
   {
        case 1: tbNivelDia.Text = "75"; break;
        case 2: tbNivelDia.Text = "73"; break;
        case 3: tbNivelDia.Text = "70"; break;
        case 4: tbNivelDia.Text = "60"; break;
        case 5: 
           {
              cbCambiarNivelDia.Checked = true; 
              tbNivelDia.Text = string.Empty;
              tbNivelDia.ReadOnly = false;
              break;
            }
        default: tbNivelDia.Text = "65"; break;
    }
}
Ahi dejarias fuera la parte del IF, pq obvias q cuando actives el CheckBox vas a alterar esas otras dos propiedades del TextBox :)

Saludos y seguimos...

Última edición por jlbautista; 05/12/2008 a las 12:08
  #7 (permalink)  
Antiguo 07/12/2008, 16:42
 
Fecha de Ingreso: diciembre-2008
Mensajes: 10
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Rellenar Text Box Segun Combo

Una forma de hacerlo sin el switch es usando las propiedades del combobox SelectedText y SelectedValue
Solo he usado combobox en windows forms, asi que no se si te servira en un webform.

SelectedIndex = igual al item seleccionado, de valor inicial 0 (nada seleccionado = -1).
SelectedText = lo que muestra en cada linea del combobox.
SelectedValue = el valor de interes para el programa (de tipo string). Si lo has de meter a mano no te ahorras casi codigo, pero si lo lees de una base de datos lo agradeceras.
Código:
protected void ddlTipoAreaAcustica_SelectedIndexChanged(object sender, EventArgs e)
{
         tbNivelDia.Text = combobox1.SelectedValue;
}
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




La zona horaria es GMT -6. Ahora son las 02:57.