none
Datagridview con mas de 700 columnas RRS feed

  • Pregunta

  • Buenos dias a todos,

    Tengo el siguiente problemilla,a ver si alguien puede ayudarme.

    Hago una consulta a una vista que contiene 700 campos y a la hora de crear el origen al Datagridview para mostrarlo me sale el siguiente error:

    La suma de los valores FillWeight de las columnas no pueden superar 65535.

    Lo que hago es lo siguiente: DataGridView1.DataSource=ds.Tables(0).

    A ver si alguien pudiera echarme una mano,MUCHAS GRACIAS.

    jueves, 2 de junio de 2016 7:42

Respuestas

  • "Largoooooo" preguntó:

    > y para poner el valor  FillWeight a todas las columnas
    > sin hacer un for,se podria?

    No es necesario recorrer un bucle For para establecer el valor de cualquier propiedad, sea FillWeight u otra cualquiera, porque tan solo tienes que asignar el valor a la respectiva variable objeto que referencie una columna cualquiera del control DataGridView (un objeto DataGridViewTextBoxColumn).

    Como dices que tu cliente desea que se muestren las 700 columnas, si dividimos 65.535 entre 700 tenemos para asignarle el valor 93 a la propiedad FillWeight de cada columna, que si no deseas recorrer un bucle For, lo harías así:

        DataGridView1.Columns(0).FillWeight = 93
        DataGridView1.Columns(1).FillWeight = 93
        DataGridView1.Columns(2).FillWeight = 93
        ...
        ...
        DataGridView1.Columns(699).FillWeight = 93

    Con tan grande número de columnas, me parece a mí que sería más fácil recorrer un bucle For. ;-)


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    jueves, 2 de junio de 2016 8:25
    Moderador

Todas las respuestas

  • ¿Tienes que mostrar 700 columnas? No creo que eso sea muy manejable para el usuario.

    Saludos, Javier J

    jueves, 2 de junio de 2016 7:45
  • Si, tengo que mostrarlas,lo pide el cliente
    jueves, 2 de junio de 2016 7:52
  • "Largoooooo" escribió:

    > Hago una consulta a una vista que contiene 700 campos y a la hora de
    > crear el origen al Datagridview para mostrarlo me sale el siguiente
    > error:
    >
    > La suma de los valores FillWeight de las columnas no pueden superar 65535.
    >
    > Lo que hago es lo siguiente: DataGridView1.DataSource=ds.Tables(0).

    Creo que el mensaje de error está bien claro, y se debe a que la suma de los valores de la propiedad FillWeight de todas las columnas del control DataGridView no puede superar el valor de 65.535.

    > A ver si alguien pudiera echarme una mano,

    La única mano que se te puede echar es para indicarte que no muestres tantas columnas en un control DataGridView, o al menos, procura que la suma de los valores de la propiedad FillWeight de todas las columnas no supere el valor de 65.535.                                    

    Si no es mucho preguntar, ¿para que quieres mostrar 700 columnas en un control DataGridView?


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.

    jueves, 2 de junio de 2016 8:04
    Moderador
  • y para poner el valor FillWeight a todas las columnas sin hacer un for,se podria?
    jueves, 2 de junio de 2016 8:16
  • "Largoooooo" preguntó:

    > y para poner el valor  FillWeight a todas las columnas
    > sin hacer un for,se podria?

    No es necesario recorrer un bucle For para establecer el valor de cualquier propiedad, sea FillWeight u otra cualquiera, porque tan solo tienes que asignar el valor a la respectiva variable objeto que referencie una columna cualquiera del control DataGridView (un objeto DataGridViewTextBoxColumn).

    Como dices que tu cliente desea que se muestren las 700 columnas, si dividimos 65.535 entre 700 tenemos para asignarle el valor 93 a la propiedad FillWeight de cada columna, que si no deseas recorrer un bucle For, lo harías así:

        DataGridView1.Columns(0).FillWeight = 93
        DataGridView1.Columns(1).FillWeight = 93
        DataGridView1.Columns(2).FillWeight = 93
        ...
        ...
        DataGridView1.Columns(699).FillWeight = 93

    Con tan grande número de columnas, me parece a mí que sería más fácil recorrer un bucle For. ;-)


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    jueves, 2 de junio de 2016 8:25
    Moderador
  • gracias
    jueves, 2 de junio de 2016 8:34