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

error con datagrid y sus columnas

Estas en el tema de error con datagrid y sus columnas en el foro de ASPX (.net) en Foros del Web. hola!! tengo un pequeño problema que no doy solucionado: Tengo un datagrid en el que muestro unos datos a partir de una sentencia select y ...
  #1 (permalink)  
Antiguo 16/02/2007, 12:04
 
Fecha de Ingreso: mayo-2006
Mensajes: 66
Antigüedad: 18 años
Puntos: 0
error con datagrid y sus columnas

hola!! tengo un pequeño problema que no doy solucionado:

Tengo un datagrid en el que muestro unos datos a partir de una sentencia select y quiero que el usuario elija (mediante un checkboxlist) las columnas que quiere ver y tengo el siguiente código:

for(int i = 0; i < listaCampos.Items.Count; i++)
{
if(listaCampos.Items[i].Selected == true)
{
DataGrid1.Columns[i].Visible=false;
}
}

siendo listaCampos mi chekboxlist

El problema es que cuando elijo los campos y le doy al button para que me muestre el datagrid con los campos elejidos me sale el siguiente error y no se porque es:
"El índice está fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección. Nombre del parámetro: index "

NOTA:me da el error en la fila DataGrid1.Columns[i].Visible=false;

Os agradeceria vuestra ayuda ya que estoy un pokito atascada con este problemilla
  #2 (permalink)  
Antiguo 20/03/2007, 14:52
 
Fecha de Ingreso: junio-2006
Mensajes: 109
Antigüedad: 17 años, 10 meses
Puntos: 2
Re: error con datagrid y sus columnas

¿Ya te aseguraste de que el número de columnas que tienes en tu datagrid es el mismo número de elementos que tienes en tu chekboxlist?
  #3 (permalink)  
Antiguo 28/03/2007, 10:46
 
Fecha de Ingreso: mayo-2006
Mensajes: 66
Antigüedad: 18 años
Puntos: 0
Re: error con datagrid y sus columnas

hola!! ya he encontrado la solución a lo que queria hacer, y para que sea de utilidad para todos lo voy a contar aqui.Haber (yo uso c# y .net 2003):

Para poner una columna invisible del datagrid si AUTOGENERATE es true con DataGrid1.columns[1].Visible=false no funciona. Para ello, yo utilizo un truco:

En HTML: <asp:DataGrid id="DataGrid1" runat="server" Autogenerate="true" OnItemDataBound = "DataGrid1_OnItemDataBound"

En el code_behind:

public void DataGrid1_OnItemDataBound(object s, DataGridItemEventArgs e)
{
e.Item.Cells[1].Visible=False
}

NOTA: en el ejemplo que yo encontré en vez de "public" para el método usa "private" pero a mi con private me daba error.

Espero que os ayude en algo, para mi fue la solución
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 05:43.