Respondida Ancho de columnas en el griedview

  • martes, 06 de marzo de 2012 17:08
     
      Tiene código

    hola chicos tengo un griedview el cual por defecto toma el tamaño segun la cantidad de datos que yo tenga....alguien puede decirme como es que puedo yo mismo establecer los anchos de mis columnas....este es mi codigo para llenar mi griedview

    Using cnn As New SqlConnection(connetionString)
                    Dim query As String = "sp_grilla_activa"
                    Dim cmd As New SqlCommand(query, cnn)
                    cnn.Open()
                    cmd = New SqlCommand(query, cnn)
                    cmd.CommandType = CommandType.StoredProcedure
                    cmd.Parameters.AddWithValue("@codigo", Session("doc"))
                    Dim r As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
                    GridView1.DataSource = r
                    GridView1.DataBind()
                    cmd.Dispose()
                    cnn.Close()
                End Using

Todas las respuestas

  • martes, 06 de marzo de 2012 17:14
     
     

    Hola, vete a la propiedad Columns del grid y por cada una de ellas en ItemStyle modifica la propiedad width y dale a cada una el ancho que quieras.

    Un saludo!

  • martes, 06 de marzo de 2012 17:18
     
     Respondida Tiene código

    una manera de hacerlo es en el evento row-databound

         protected void grvGrilla_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                System.Data.DataRowView drv;
                drv = (System.Data.DataRowView)e.Row.DataItem;
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    if (drv != null)
                    {
                        String catName = drv[1].ToString();
                        int catNameLen = catName.Length;
                        if (catNameLen > widestData)
                        {
                            widestData = catNameLen;
                            grvGrilla.Columns[0].ItemStyle.Width =
                               widestData * 30;
                            grvGrilla.Columns[0].ItemStyle.Wrap = false;
                           }
                    }
                     }
            }


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.
    Saludos.
    Lima-Perú

  • martes, 06 de marzo de 2012 17:20
     
     
    pero si te das cuenta la informacion que sale en el griedview esta siendo jalado por una base de datos y cuando me voy a donde tu me dices me sale para poner las columnas con un boundfiled, etc....hay alguna manera de hacerlo por codigo
  • martes, 06 de marzo de 2012 17:23
     
     

    Por código puedes hacerlo como Augusto1982 te dice.

    Si lees los datos de una base de datos, y quieres a priori establecer el ancho de las columnas, establece manualmente las columnas que va a tener el grid, asegurate de que coincidan con las columnas del origen de datos; estas columnas deberán ser boundfiled, y editas el ancho como te indiqué.

    Un saludo!

  • martes, 06 de marzo de 2012 18:53
    Moderador
     
     Respondida

    las columnas boundfiled tambien tienes la propiedad Style

    BoundField with ItemStyle

    como veras se define

    <asp:BoundField DataField="Name" HeaderText="Name">
         <ItemStyle Wrap="True" Width="200"/>
    </asp:BoundField>

    esto si defiens las columans en timepo de diseño y pones la propiedad AutoGenerateColumns en false

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina