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

Problemas con checkbox y gridview paginado

Estas en el tema de Problemas con checkbox y gridview paginado en el foro de ASPX (.net) en Foros del Web. Hola todo/as, tengo el siguiente problema: estoy implementando un envio de correo. tengo un gridview, y una de sus columnas es un checkbox; he implementado ...
  #1 (permalink)  
Antiguo 29/01/2009, 05:22
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Exclamación Problemas con checkbox y gridview paginado

Hola todo/as, tengo el siguiente problema:

estoy implementando un envio de correo.
tengo un gridview, y una de sus columnas es un checkbox; he implementado la funcionalidad de seleccionar todas y funciona perfectamente, el problema lo tengo cuando selecciono de forma suelta y cambio de pagina, aparentemente me marca todos los checkbox de todas las paginas, pero en realidad no lo hace, porque me carga los correos que realmente he seleccionado.
Alguien podria ayudarme????


gracias
  #2 (permalink)  
Antiguo 29/01/2009, 07:54
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Problemas con checkbox y gridview paginado

Sin codigo ta dificil ayudarte.... ademas no entiendo en la parte que pones "cuando selecciono de forma suelta y cambio de pagina, aparentemente me marca todos los checkbox de todas las paginas, pero en realidad no lo hace, porque me carga los correos que realmente he seleccionado.
"

A que te referis con esto.? te marca todos los check en la grilla pero en realidad por codigo solo ves marcados los que realmente habias seleccionado y no todos?

Saludos y pone tu codigo para ayudarte.
  #3 (permalink)  
Antiguo 29/01/2009, 10:21
 
Fecha de Ingreso: junio-2008
Mensajes: 5
Antigüedad: 15 años, 10 meses
Puntos: 0
Respuesta: Problemas con checkbox y gridview paginado

Efectivamente lo que sucede es que visualmente se marcan todos los checks pero internamente (guardo los marcados en un identitydatalist, solo se almacenan lo que realmente he marcado...) y se produce cuando cambio de pagina.

Te pongo los eventos de cambio de pagina y de marcar los checks para que que veas, no te pongo el codigo entero de la pagina porque es muy extenso


#region Eventos relacionados del Grid
protected void GridContactos_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Contacto Dest = (Contacto)e.Row.DataItem;

CheckBox chkUsuario = e.Row.FindControl("chkUsuario") as CheckBox;

if (chkUsuario != null)
{
chkUsuario.InputAttributes.Add("IdDest", Dest.pk_Contacto.ToString());
chkUsuario.InputAttributes.Add("EmailDest", Dest.EmailContacto);
chkUsuario.Checked = this.ListaContactosSeleccionados.GetIdentifyData(D est.pk_Contacto) != null;
}
}
}

/// <summary>
/// Evento provocado cuando un check cambia de estado
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void chkUsuario_CheckedChanged(object sender, EventArgs e)
{
IdentifyData Elem = new IdentifyData(
Convert.ToInt64(((CheckBox)sender).InputAttributes["IdDest"]),
((CheckBox)sender).InputAttributes["EmailDest"]);

this.SetDestinatario(Elem, ((CheckBox)sender).Checked);
}

/// <summary>
/// Controla el evento de cambio de estado en el chk todas que contiene el grid
/// </summary>
/// <param name="sender">Objeto que invoca el evento</param>
/// <param name="e">Argumentos de entrada del evento</param>
protected void chkTodas_CheckedChanged(object sender, EventArgs e)
{
Todas = ((CheckBox)sender).Checked;
foreach (GridViewRow row in GridContactos.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkEnviar = row.FindControl("chkUsuario") as CheckBox;
if (chkEnviar != null && (!chkEnviar.Checked.Equals(((CheckBox)sender).Chec ked)))
{
IdentifyData Elem = new IdentifyData(
Convert.ToInt64(chkEnviar.InputAttributes["IdDest"]),
chkEnviar.InputAttributes["EmailDest"]);
this.SetDestinatario(Elem, ((CheckBox)sender).Checked);
chkEnviar.Checked = ((CheckBox)sender).Checked;
}
}
}

}

/// <summary>
/// Evento producido en el cambio de indexación de la página.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void GridContactos_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridContactos.PageIndex = e.NewPageIndex;
EnlazaGridContactos(null);

}
  #4 (permalink)  
Antiguo 29/01/2009, 11:07
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Problemas con checkbox y gridview paginado

No entiendo esta linea pero seguro te esta marcando todos en esta parte.

chkUsuario.Checked = this.ListaContactosSeleccionados.GetIdentifyData(D est.pk_Contacto) != null;

Porque no haces un debug aca cuando hagas un paginado y ves si entra siempre y que valor le esta asignando....
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 21:48.