• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

black

ocultar coluna na gridview por codigo para continuar a reconhecer coluna

10 mensagens neste tópico

boas....

estou a desenvolver um projecto em asp.net c#

estou a utilizar uma gridview em que faço a captação de um determinado valor e passo esse valor por get, porem não quero ver esse coluna, mas senão puser visible=false e deixa de captar o valor, sei que há uma forma de ocultar a coluna por código de forma a ficar invisível porem dar para conhecer na mesma o valor para passar, alguem sabe essa forma?...

eu estou a passar assim:

    GridViewRow row = GridView1.SelectedRow;

        Response.Redirect("pagina10.aspx?id=" + row.Cells[0].Text + "&drop=" + row.Cells[3].Text + "&ano=" + row.Cells[2].Text);

e quero por exemplo ocultar a coluna [3], mas poder continuar a captar o valor....

alguém me pode ajudar em c#???

 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes por simplesmente visible false e depois vais buscar os dados no codebehind ao datasource da gridview :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e como faço isso?? eu ponho visible=false mas depois nao conseguer ir buscar valor nenhum.... como vou buscar ao codebehind ao datasource da gridview?????

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se passares o DataSource para um DataTable apartir de la tens acesso aos valores mesmo nao estando visivel :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e como passo??? eu utilizo o sqldatasource e nao tem nada com datatable!!!! desculpa mas sera que podes ser mais especifico???

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Dim dView As DataView

dView = CType(dataGridView1.DataSource, DataView)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e nao há forma mais simple? tive a pesquisar e encontrei o que precisava mas em vb e eu estou a trabalhar em c#....

o codigo em vb é o seguinte:

No GridView:

<asp:GridView id="GridView1" runat="server" OnRowDataBound="OcultarColuna">

No codebehind:

'rotina associada ao evento - OnRowDataBound para tornar invisível a coluna Id do GridView

'0 é o indice da coluna que quero ocultar

Public Sub OcultarColuna(ByVal sender As Object, ByVal e As GridViewRowEventArgs) Handles GridView1.RowDataBound

Select Case e.Row.RowType

Case DataControlRowType.Header

e.Row.Cells(0).Visible = False

Case DataControlRowType.DataRow

e.Row.Cells(0).Visible = False

Case DataControlRowType.Footer

e.Row.Cells(0).Visible = False

End Select

End Sub

sera que alguem me pode ajudar a fazer o mesmo em c#?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se é isto que precisas, mas aqui vai...

No código ASPX:

<%--Coluna não visivel--%>                                                              
         <asp:BoundField DataField="Id" HtmlEncode="False" Visible="false" > 
         </asp:BoundField> 

No evento Grid_SelectedIndexChanged

string a = GridId.DataKeys[GridId.SelectedRow.RowIndex].Values[1].ToString();

Values[1] representa a ordem da DataKey na tua Grid (0,1,2,...)

Caso queiras aceder a um valor de uma coluna visivel fazes:

string a = GridId.SelectedRow.Cells[1].Text;

onde Cells[1] representa a ordem da coluna na grid...

Espero ter ajudado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora