Jump to content
Sign in to follow this  
startuga

[Resolvido] Alterar Columns HeaderText

Recommended Posts

startuga

Boa tarde pessoal,

Ao tentar alterar o nome da coluna de uma tabela com este código ,

GridView1.Columns(0).HeaderText = "Home"

Estou a enfrentar o seguinte erro:

ArgumentOutOfRangeException was unhandled by user code

Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index.

Já tentei de tudo e não consigo resolver :x

Obrigado ;

Share this post


Link to post
Share on other sites
veaoum

Boa tarde pessoal,

Ao tentar alterar o nome da coluna de uma tabela com este código ,

GridView1.Columns(0).HeaderText = "Home"

Estou a enfrentar o seguinte erro:

ArgumentOutOfRangeException was unhandled by user code

Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index.

Já tentei de tudo e não consigo resolver :x

Obrigado ;

Faz assim:

GridView1.Columns.Item(0).HeaderText = "Home"

Resulta?

Quer dizer como tu tens também devia resultar. tens a certeza que o nome da tabela é mesmo esse?

Share this post


Link to post
Share on other sites
nelsonr

Faz debug com um breakpoint nessa linha.

Selecciona o texto "GridView1.Columns", clica com o botão direito e faz "QuickWatch...".

Ai consegues ver o conteúdo da variavel e ver se tem colunas.

Share this post


Link to post
Share on other sites
startuga

Faz debug com um breakpoint nessa linha.

Selecciona o texto "GridView1.Columns", clica com o botão direito e faz "QuickWatch...".

Ai consegues ver o conteúdo da variavel e ver se tem colunas.

Não está a receber nada.

Share this post


Link to post
Share on other sites
nelsonr

O que queres dizer com isso? Não te aparece nada no QuickWatch? Ou aparece que não tem colunas?

Share this post


Link to post
Share on other sites
startuga

O que queres dizer com isso? Não te aparece nada no QuickWatch? Ou aparece que não tem colunas?

Aparece que não tem colunas.

Share this post


Link to post
Share on other sites
startuga

Pois, era o que desconfiava.

Como é que estás a criar a grelha?

Desta forma, passo a citar o código:

  If Not IsPostBack Then
	    'Sql Connect to the xxxxx database
	    Dim strPath As String = Server.MapPath("~\app_data\xxxxx.mdf")
	    strConnectionString = "Data Source=xxxxxxx;Initial Catalog=xxxxxx;Integrated Security=True"
	    Dim strCommand As String = "SELECT HPedidos.Pais,DATEPART(hh, HPedPart_Surtido.Fecha) Hora, HPedPart_Surtido.ID_Estacion, SUM(HPedPart_Surtido.Cantidad_Surtida) AS TotalSetsPicked FROM HPedPart_Surtido INNER JOIN HPedidos ON HPedPart_Surtido.ID_Pedido = HPedidos.ID WHERE (DATEPART(dd, HPedPart_Surtido.Fecha) = DATEPART(dd, GETDATE())) AND (DATEPART(mm, HPedPart_Surtido.Fecha) = DATEPART(mm, GETDATE())) AND (DATEPART(yyyy, HPedPart_Surtido.Fecha) = DATEPART(yyyy, GETDATE())) GROUP BY HPedidos.Pais,DATEPART(hh, HPedPart_Surtido.Fecha), HPedPart_Surtido.ID_Estacion order BY DATEPART(hh, HPedPart_Surtido.Fecha) desc, HPedidos.Pais, HPedPart_Surtido.ID_Estacion "
	    Dim conn As New SqlConnection(strConnectionString)
	    Dim sqlcommand As New SqlCommand(strCommand, conn)
	    Dim drDataReader As SqlDataReader
	    Dim dtDataTable As New DataTable
	    conn.Open()
	    drDataReader = sqlcommand.ExecuteReader
	    dtDataTable.Load(drDataReader)
	    GridView1.DataSource = dtDataTable
	    GridView1.DataBind()
	    conn.Close()
    End If

Share this post


Link to post
Share on other sites
nelsonr

E estavas a colocar o codigo de alterar o titulo onde?

Experimentaste por exemplo logo ai depois do databind?

Share this post


Link to post
Share on other sites
startuga

E estavas a colocar o codigo de alterar o titulo onde?

Experimentaste por exemplo logo ai depois do databind?

Exprimentei em vários locais, antes de abrir a ligação, depois da ligação já feita, e mesmo no fim da ligação fechada.

Share this post


Link to post
Share on other sites
startuga

Obrigado pela ajuda pessoal, acabei por solucionar o problema utilizando o evento RowCreated da seguinte forma:

   Private Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
    If (e.Row.RowType = DataControlRowType.Header) Then
	    e.Row.Cells(0).Text = "País"
	    e.Row.Cells(1).Text = "Hora"
	    e.Row.Cells(2).Text = "Estação"
	    e.Row.Cells(3).Text = "Local"
    End If
   End Sub

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.