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

Seleccionar items de un DropDownList dentro de una grid

Estas en el tema de Seleccionar items de un DropDownList dentro de una grid en el foro de ASPX (.net) en Foros del Web. Bueno dias Como puedo seleccionar un items de un DropDownList que se carga dentro de una grid Gracias...
  #1 (permalink)  
Antiguo 28/11/2005, 14:08
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
Seleccionar items de un DropDownList dentro de una grid

Bueno dias

Como puedo seleccionar un items de un DropDownList que se carga dentro de una grid

Gracias
  #2 (permalink)  
Antiguo 28/11/2005, 14:29
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Código:
Definicion del grid ... se agrega el combo como un template...dentro del grid


<asp:TemplateColumn HeaderText="Modo">
	<ItemTemplate>
		<asp:dropdownlist id="Dropdownlist2" runat="server" Height="14px" AutoPostBack="True" Font-Names="Verdana"
				Font-Size="9px" OnSelectedIndexChanged="CambioEnComBoBox">
			<asp:ListItem Value="1">Opcion 1</asp:ListItem>
			<asp:ListItem Value="2">Opcion 2</asp:ListItem>
			<asp:ListItem Value="3">Opcion 3</asp:ListItem>
		</asp:dropdownlist>
	</ItemTemplate>
</asp:TemplateColumn>



Manejador de evento.

protected void CambioEnComBoBox(object sender, System.EventArgs e)
{
	DropDownList list = (DropDownList)sender;
	
	TableCell cell = list.Parent as TableCell;
	DataGridItem item = cell.Parent as DataGridItem;

	/************ Valor seleccionado  *******************/
	string content = item.Cells[0].Text;
	/************ Valor seleccionado  *******************/
}
  #3 (permalink)  
Antiguo 28/11/2005, 15:53
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
Andres95

Esto no me funciono pues al momento de seleccionar un item no me ingresa al metodo de CambioEnComBoBox pues de esta forma no me funciono
como podria de otra forma lograr esto?

Gracias
  #4 (permalink)  
Antiguo 28/11/2005, 16:14
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
checaste si el autopostback del dropdownlist esta activado?
  #5 (permalink)  
Antiguo 28/11/2005, 16:20
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
si este lo active pero no entra alli
  #6 (permalink)  
Antiguo 28/11/2005, 16:24
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
probablemente porque en el load de la pagina esta volviendo a cargar el control dropdown
  #7 (permalink)  
Antiguo 28/11/2005, 19:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
Este solo se llena en el !IsposBack y lo selecciono en una recarga
  #8 (permalink)  
Antiguo 29/11/2005, 09:15
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
el metodo esta definido como protected?

te marca un error o simplemente no entra..??

es dificil saber que pasa, tal vez si pones algo del codigo para rastrearlo... el html, el codigo...
  #9 (permalink)  
Antiguo 29/11/2005, 09:30
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
gracias andres95

mira este pante lo pongo en el grid y lo invoco en el metodo pero nunca lo reconoce no ingresa alli

<ItemTemplate>
<asp:DropDownList id="cboestadoCarne" runat="server" OnSelectedIndexChanged="CambioEnComBoBox"
AutoPostBack="True"></asp:DropDownList>
</ItemTemplate>

public void CambioEnComBoBox(object sender, System.EventArgs e)
{
DropDownList list = (DropDownList)sender;

TableCell cell = list.Parent as TableCell;
DataGridItem item = cell.Parent as DataGridItem;

/************ Valor seleccionado *******************/
string content = item.Cells[5].Text;
/************ Valor seleccionado *******************/
}
  #10 (permalink)  
Antiguo 29/11/2005, 09:49
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
bueno, como que no lo reconoce? te marca un error? algo de accesibilidad del metodo?

le pusiste un break point en el load y en el metodo para verificar si llega? o como te das cuenta que no lo ejecuta?
  #11 (permalink)  
Antiguo 29/11/2005, 10:28
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
Le puse un break poin pero no entra al momento de elegir el item
  #12 (permalink)  
Antiguo 29/11/2005, 10:40
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
pero si entra en el load?

podrias postear el load?
  #13 (permalink)  
Antiguo 29/11/2005, 11:06
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
este es mi load no se por que no coge
el html

Código:
if(!IsPostBack)
			{
				string dir = Server.MapPath("~/Conexion.xml");
				clsConexion.NombreNodo="cnxAppl";
				cnn=clsConexion.CrearConexion(dir);
				ViewState["RegistroGrid"]=0;
				WucEmpresa.CadenaDeConexion=cnn;
				panelinforme.Visible=false;
			
				#region Carga de variables del Control Busquedas
				panelControl.Visible=false;
				WucEmpresa.Opcion="EmpresaContratista";
				WucEmpresa.URLImagenBotonBuscar="~/Imagenes/buscar.gif";
				WucEmpresa.Encabezado="";
				WucEmpresa.URLImagenBuscar="~/Imagenes/CuadroEnBlanco.jpg";
				#endregion

				//LlenarCombo();
			}
  #14 (permalink)  
Antiguo 29/11/2005, 11:19
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
ese es todo tu load?

bueno pues lamentablemente no me es posible localizar el error...

deberia funcionar como sigue..

cuando cambies la selecion del combo... hacer un post back y ejecuar el load...despues deberia ejecutar la funcion para manejar el evento.

pero sin ver el codigo completo no logro localizar el error...

yo tengo una aplicacion con un grid en el que utilizo un combo... y de forma similar actualizo dicho grid ... y me funciona... por lo que la estructura que he posteado es la que utilizo ....
  #15 (permalink)  
Antiguo 29/11/2005, 15:42
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
mira este es el momento de invocar como la utilizo

foreach(DataGridItem d in dgCarne.Items)
{
DropDownList ddlcarne =(DropDownList)d.Cells[0].FindControl("cboestadoCarne");

txtTexto.Tex = ddlcarne.SelectedItem.Text;
  #16 (permalink)  
Antiguo 29/11/2005, 15:47
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
TableCell cell = ddlcarne.Parent as TableCell;
DataGridItem item = cell.Parent as DataGridItem;
string content = item.Cells[5].Text;

aqui este me string content me llega vacio
  #17 (permalink)  
Antiguo 29/11/2005, 16:40
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
ok,

si ya ejecuta el metodo... es buen progreso.. d:D

puedes utilizar lo siguiente para obtener el valor seleccionado...

list.SelectedValue -- valor del item
list.SelectedItem -- Texto del item
  #18 (permalink)  
Antiguo 29/11/2005, 16:56
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
en estos momentos tengo estas dos formas

string seleccion = null;
foreach(DataGridItem d in dgCarne.Items)
{
DropDownList ddlcarne =(DropDownList)d.Cells[5].FindControl("cboestadoCarne");
if(ddlcarne.SelectedItem != null)
{
//seleccion= ddlcarne.SelectedValue;
seleccion= ddlcarne.SelectedItem.Text;
//d.Cells[0].FindControl("cboestadoCarne");
if (ddlcarne.SelectedItem.Text!="")
{
TableCell cell = ddlcarne.Parent as TableCell;
DataGridItem item = cell.Parent as DataGridItem;
string content = item.Cells[5].Text;
  #19 (permalink)  
Antiguo 29/11/2005, 17:28
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
// Se obtiene el elemento dropdowlist ( misma operacion que con findcontrol)
DropDownList list = (DropDownList)sender;

//se obtiene la celda donde esta incrustado el dropdown (es la template item) TableCell cell = list.Parent as TableCell;

// Se obtiene todo el renglon... es decir todo el registro donde esta la celda
DataGridItem item = cell.Parent as DataGridItem;

//Con esto se obtiene el valor de la primera celda del registro
string content = item.Cells[0].Text;

Aqui me equivoque yo... lo que sucede es que en mi aplicacion considero el primer valor para actualizarlo con respecto al item seleccionado cuyo valor obtengo con

list.SelectedValue

ese es el valor que tiene el item... ya que a los dropdown tiene una pareja de (valor,texto)
  #20 (permalink)  
Antiguo 29/11/2005, 18:38
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
para mi deberia ser asi:

foreach(DataGridItem d in dgCarne.Items)
{
DropDownList ddlcarne =(DropDownList)d.Cells[5].FindControl("cboestadoCarne");

variable = ddlcarne.SelectedItem.Text;
}
pero esto no me funciona asi declare mas objetos
  #21 (permalink)  
Antiguo 29/11/2005, 18:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
string seleccion = null;
foreach(DataGridItem d in dgCarne.Items)
{
DropDownList ddlcarne =(DropDownList)d.Cells[5].FindControl("cboestadoCarne");
if(ddlcarne.SelectedItem != null)
{
//seleccion= ddlcarne.SelectedValue;
seleccion= ddlcarne.SelectedItem.Text;

en este punto me trae el primer item no el que seleccione

y aqui

if (ddlcarne.SelectedItem.Text!="")
{
TableCell cell = ddlcarne.Parent as TableCell;
DataGridItem item = cell.Parent as DataGridItem;
string content = item.Cells[5].Text;

me lleva la variable vacia
  #22 (permalink)  
Antiguo 30/11/2005, 09:01
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
te da la variable vacia, porque la celda no tiene un valor texto, recuerda que es un Template item.... entonces.. una vez teniendo el dropdown control toma el item seleccionado...

lo que me llama la atencion es que recorres todo el grid....

si deseas postear o mandar el codigo completo de (html y codigo) con gusto lo revizo.. y cuando tenga algo te lo envio y lo posteo (para respetar las reglas del foro d:D ) ya que a este paso no acabaremos rapido.


[email protected]



------------------------------------------------------

Ok, ya realice un ejemplo muy sencillo con la Bd Pubs de SQL

si quieres te lo envio.


Última edición por Andres95; 30/11/2005 a las 10:13
  #23 (permalink)  
Antiguo 30/11/2005, 11:42
 
Fecha de Ingreso: noviembre-2005
Mensajes: 14
Antigüedad: 18 años, 5 meses
Puntos: 0
Andres95


Muchas Gracias por la ayuda
por fin pude solucionar este problema
ensaye todo y me funciono como decias te agradesco toda la colaboracion prestada
por si algu guardare tu correo para alguna colaboracion

si quieres me puedes enviar el ejemplo al correo
[email protected] pues creo que asi reforare mas mis conocimientos respecto al manejo de controles dentro del Datagrid

Gracias
lrestre01
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 13:14.