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

Expertos:Controles en footer del grid sin eventos :(

Estas en el tema de Expertos:Controles en footer del grid sin eventos :( en el foro de .NET en Foros del Web. Buenas Tengo un grid con 2 combos en el footer como se ve en la imagen (en el ejemplo no hay filas en el grid ...
  #1 (permalink)  
Antiguo 27/01/2005, 10:57
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
Expertos:Controles en footer del grid sin eventos :(

Buenas
Tengo un grid con 2 combos en el footer como se ve en la imagen (en el ejemplo no hay filas en el grid solo encabezado y footer). El problema es que no existen desde vs.net eventos en el combo dentro del footer para que salte al cambiar la seleccion del combo1 y asi poder cambiar el contenido del combo2.



He probado a meter el evento a mano desde el itemdatabound del datagrid pero no salta el evento:
((DropDownList)e.Item.FindControl("ddEtapa")).Sele ctedIndexChanged += new System.EventHandler(this.ddEtapa_SelectedIndexChan ged);

Alguien sabe como hacerlo?
Gracias

Conciertos de rap
  #2 (permalink)  
Antiguo 27/01/2005, 11:20
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Me imagino que dentro de tu datagrid tienes algo como ésto:

Cita:
<FooterTemplate>
<asp:DropDownList id=ddl1 Runat="server" AutoPostBack="True" DataValueField="CustomerID" DataTextField="CompanyName" DataSource="<%# myDS() %>" OnSelectedIndexChanged="CustomMethod">
</asp:DropDownList>probando
</FooterTemplate>
Lo interesante es crear un método que será el que utilizaremos para asociar nuestro dropdownlist, que en este caso yo lo puse como CustomMethod.

Y en el codebehind colocarías algo como ésto:

Cita:
protected void CustomMethod(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
Response.Write("valor seleccionado es :" + ddl.SelectedItem.Value);
}
Y listo.

Espero que sea lo que buscas.

Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 27/01/2005, 11:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
justo acabo de encontrar la solucion.
La solucion que decias tu no lanza el evento al cambiar el combo. Para que se lance al cambiar el combo hay que crear el evento del combo desde este evento del grid y asi ya salta el nuevo evento ;)

private void dg_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
// Creo el evento al cambiar el combo de etapas
if(e.Item.ItemType == ListItemType.Footer)
{
DropDownList ddlTemp = ((DropDownList)e.Item.FindControl("ddEtapa"));
ddlTemp.SelectedIndexChanged += new
System.EventHandler(ddEtapa_SelectedIndexChanged);
}

}
  #4 (permalink)  
Antiguo 27/01/2005, 11:52
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
La solucion que decias tu no lanza el evento al cambiar el combo.
Creeme que si lo hace friend , no es necesario hacerlo desde el ItemCreated, pero si te funciona esta bien, cuestion de estilos y gustos.
  #5 (permalink)  
Antiguo 28/01/2005, 01:32
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
Si tu lo has probao y funciona será que si, quizá hice alguna cosa mal y por eso no me saltó el evento... Pero bueno me kedaré con mi solucion que me ha gustado.
  #6 (permalink)  
Antiguo 28/01/2005, 09:14
 
Fecha de Ingreso: mayo-2004
Ubicación: Guadalajara, Jalisco, México
Mensajes: 724
Antigüedad: 20 años
Puntos: 6
Uu.. como que el wakewakeup no se la cree.... ahunque la solucion de wakewakeup es interesante ya que agrega un handless al control.. pero = el metodo del roorK si jala... yo ha he usado cosas similares.. pero con otros eventos...

Salu2
  #7 (permalink)  
Antiguo 28/01/2005, 10:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 878
Antigüedad: 19 años, 6 meses
Puntos: 1
jeje que si me lo creo :P
  #8 (permalink)  
Antiguo 09/03/2011, 05:13
 
Fecha de Ingreso: marzo-2011
Mensajes: 1
Antigüedad: 13 años, 1 mes
Puntos: 0
Pregunta Respuesta: Expertos:Controles en footer del grid sin eventos :(

Cita:
Iniciado por wakewakeup Ver Mensaje
justo acabo de encontrar la solucion.
La solucion que decias tu no lanza el evento al cambiar el combo. Para que se lance al cambiar el combo hay que crear el evento del combo desde este evento del grid y asi ya salta el nuevo evento ;)

private void dg_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
// Creo el evento al cambiar el combo de etapas
if(e.Item.ItemType == ListItemType.Footer)
{
DropDownList ddlTemp = ((DropDownList)e.Item.FindControl("ddEtapa"));
ddlTemp.SelectedIndexChanged += new
System.EventHandler(ddEtapa_SelectedIndexChanged);
}

}
Como lo hiciste porque yo tengo el mismo problema he probado y nada, este es mi código para el que quiera echarle un vistazo a ver si detecta el error, muchas gracias de antemano a todos.

protected void DtgDept_ItemCreated(object sender, DataGridItemEventArgs e)
{
// Creo el evento al cambiar el combo de etapas
if (e.Item.ItemType == ListItemType.Footer)
{

DropDownList ddlTemp = ((DropDownList)e.Item.FindControl("nDropDownListf" ));
ddlTemp.SelectedIndexChanged += new System.EventHandler(nDropDownListf_SelectedIndexCh anged);
SqlConnection cn3 = new SqlConnection(cadena);
SqlCommand comando3 = new SqlCommand();
comando3.Connection = cn3;
Response.Write(ddlTemp.SelectedValue);
comando3.CommandText = "select * from subfamilias where codfami=" + int.Parse(ddlTemp.SelectedValue);
comando3.CommandType = CommandType.Text;
SqlDataAdapter adaptador3 = new SqlDataAdapter(comando3);
DataSet datos3 = new DataSet();
adaptador3.Fill(datos3, "subfamilias");
DropDownList nDropDownLists2 = (DropDownList)e.Item.FindControl("nDropDownLists") ;
nDropDownLists2.DataSource = datos3;
nDropDownLists2.DataMember = "subfamilias";
nDropDownLists2.DataTextField = "nsubfami";
nDropDownLists2.DataValueField = "codsubfamilias";
nDropDownLists2.DataBind();
}
}
protected void nDropDownListf_SelectedIndexChanged(object sender, EventArgs e)
{

}
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 20:49.