none
Quitar columnas de un GridView C# asp.net[Duda] RRS feed

  • Pregunta

  • Hola, buenos dias, tardes o noches.

    Tengo la siguiente duda:

    Quiero eliminar columnas de un gridview para una pagina en asp.

    primero le cargo informacion que traigo de un web service. pero me trae todas las columnas, incluyendo las que no debo mostrar.

    entonces, quiero filtrar lo que quiero mostrar. puedo hacerlo en asp? o debo hacerlo a nivel de logica de donde envio los datos a asp mediante el ws ?

    WS_xxxxx list = new xxxxx();
                
                string text  = Convert.ToString(Request.QueryString["xxxxx"]);
                
               
                var item = list.xxx(text);
               if ( item != null )
                {
                    
                  
                    gvLibro.DataSource = item;
                    gvLibro.DataBind();
    
                }
    

    probe haciendo :

    gvLibro.Columns.Remove("columna a quitar");

    y con remove at.

    pero estos solo reciben un INT, y cuando se lo doy, me lanza error de sintaxy, que el valor esta fuera de rango.

    entonces, alguna otra manera?

    Saludos!

    miércoles, 15 de noviembre de 2017 18:22

Respuestas

  • Hola, si solo e spara mostrar los datos poddrías poner la propiedad autigeneratecolumns en false y tu mismo poner las columnas que necesitas

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"/>
         <Columns>
             <asp:BoundField DataField="micampo" HeaderText="Cabecera Campo" />
         </Columns>
     </asp:GridView>


    Votar es agradecer.
    Saludos.
    Lima-Perú

    miércoles, 15 de noviembre de 2017 19:54

Todas las respuestas

  • Buenas,

    La verdad es que si esas columnas no las necesitas para nada, lo mejor es filtrar lo en el origen, para no tener que transmitir datos que no tienen sentido. 

    Si esas columnas las necesitas para algo, aunque no quieres que se muestren, simplemente puedes ocultarla del datagridview con

    gvLibro.Columns[índice].Visible = false;
    Sustituye índice por el número o nombre de columna, y repítelo tantas veces como necesites

    Nos comentas si tienes dudas

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    miércoles, 15 de noviembre de 2017 18:40
  • Buenas,

    La verdad es que si esas columnas no las necesitas para nada, lo mejor es filtrar lo en el origen, para no tener que transmitir datos que no tienen sentido. 

    Si esas columnas las necesitas para algo, aunque no quieres que se muestren, simplemente puedes ocultarla del datagridview con

    gvLibro.Columns[índice].Visible = false;
    Sustituye índice por el número o nombre de columna, y repítelo tantas veces como necesites

    Nos comentas si tienes dudas

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    hola, pasa que esa informacion que no uso ahi, la uso en otras paginas.
    probe lo indicado y me devuelve este error:

    Additional information: El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.

    miércoles, 15 de noviembre de 2017 18:46
  • Buenas,

    Entiendo que el datagridview tiene columnas, estas accediendo a índices muy altos?

    Puedes ver si tiene columnas con 

    int nColumnas = gvLibro.Columns.Count;
    

    Si pones esa línea después de llenar el datagridview y pones un breakpoint, verás el número de columnas. Puede que no estés cargando el datagridview por la razón que sea. 

    Verifica la cantidad de columnas y que tu índice está por debajo de la cantidad que tiene. 

    Nos comentas el resultado

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    miércoles, 15 de noviembre de 2017 19:02
  • Buenas,

    Entiendo que el datagridview tiene columnas, estas accediendo a índices muy altos?

    Puedes ver si tiene columnas con 

    int nColumnas = gvLibro.Columns.Count;

    Si pones esa línea después de llenar el datagridview y pones un breakpoint, verás el número de columnas. Puede que no estés cargando el datagridview por la razón que sea. 

    Verifica la cantidad de columnas y que tu índice está por debajo de la cantidad que tiene. 

    Nos comentas el resultado

    Atte


    No olvides votar mi comentario si te ha ayudado y marcarlo como respuesta si ha sido la solución, con eso ayudas a mejorar mi reputación en la comunidad y a identificar la respuesta a la gente que tenga el mismo problema.

    Para obtener una respuesta lo más rápida y concisa posible, te recomiendo:

    Hola, probe lo sugerido, pero haciendo el breakpoint, me di cuenta que me marca el contador en 0, igual el gridview me muestra info en la pagina cuando lo invoco, pero el contador no avanzo de 0.

    miércoles, 15 de noviembre de 2017 19:47
  • Hola, si solo e spara mostrar los datos poddrías poner la propiedad autigeneratecolumns en false y tu mismo poner las columnas que necesitas

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"/>
         <Columns>
             <asp:BoundField DataField="micampo" HeaderText="Cabecera Campo" />
         </Columns>
     </asp:GridView>


    Votar es agradecer.
    Saludos.
    Lima-Perú

    miércoles, 15 de noviembre de 2017 19:54