Avatar billede Kim Neesgaard Seniormester
13. august 2006 - 14:54 Der er 14 kommentarer og
1 løsning

Skjule en kolonne i et GridView

Jeg har et GridView med et selectlink, et ID og en tekst. Med

gvListeNy.SelectedRow.Cells(1).Text

kan jeg aflæse ID, så jeg kan gøre noget med de data, som brugeren har klikket på og det virker. Imidlertid vil jeg gerne skjule ID for brugeren, men stadig være i stand til at aflæse det, men hvis jeg sætter visible for ID kolonnen til false, så kan jeg ikke længere aflæse den - hvordan klarer man det?
Avatar billede snepnet Nybegynder
13. august 2006 - 14:59 #1
Du kan sætte den ind som i DataKeyNames property'en på griddet, og hente den med:
int id = (int)someGrid.DataKeys[e.Item.ItemIndex];
(underforstået at du er i en handler hvor du har et eventargument med en reference til dit item)
Mvh
Avatar billede Kim Neesgaard Seniormester
13. august 2006 - 15:04 #2
Jeg kan godt finde den egenskab - skriver jeg bare 'ID' i boksen?
Avatar billede snepnet Nybegynder
13. august 2006 - 15:09 #3
Jeps (hvis din kolonne hedder ID) - du kan også angive flere nøgler, de skal bare være kommasepereret.
Mvh
Avatar billede Kim Neesgaard Seniormester
13. august 2006 - 16:09 #4
Går ud fra, at den skal stå under SelectedIndexChanged? Hvis jeg sætter den ind, så bølger den under 'e.Item' - Item is not a member of.....?
Avatar billede snepnet Nybegynder
13. august 2006 - 16:29 #5
nej - i den handler skal du gøre det på en anden måde:
GridViewRow item = someGrid.Rows[someGrid.SelectedIndex];
så har du dit item :o)
Mvh
Avatar billede Kim Neesgaard Seniormester
13. august 2006 - 16:44 #6
Dette accepteres:

Dim item As GridViewRow = gvListeNy.Rows(gvListeNy.SelectedIndex)

men burde man ikke kunne indsætte item i fx. en textbox:

textbox.Text= = item

Så siger den, at item ikke kan konverteres til en string?
Avatar billede snepnet Nybegynder
13. august 2006 - 16:59 #7
Dit item er et GridViewRow.... hvorfor skulle du putte det i en tekstboks?
... Jeg tror ikke jeg er helt med.
(Du kan altid lave en .ToString() på hvad som helst, men for stort set alle referencetyper vil det bare give dig typens fulde navn).
Mvh
Avatar billede Kim Neesgaard Seniormester
13. august 2006 - 22:53 #8
Jeg vil gerne have mit ID ud for at arbejde videre med det, så derfor puttede jeg det forsøgsvis i en textbox. Intellisense tilbød ikke ToString efter item, men hvis jeg skriver det, kan den godt - den viser dog tekst og ikke ID?
Avatar billede snepnet Nybegynder
13. august 2006 - 23:17 #9
Ahh... du skal lave en kombination får at få værdien :
GridViewRow item = someGrid.Rows[someGrid.SelectedIndex];
int id = (int)someGrid.DataKeys[item.ItemIndex];
Så har du id'et at arbejde med.
Mvh
Avatar billede Kim Neesgaard Seniormester
14. august 2006 - 19:07 #10
Når det er en SQL Server uniqueidentifier, skal det så ikke være en string i stedet for en int? Den brokker sog over 'item.ItemIndex' - ItemIndex is not a member of GridViewRow?
Avatar billede Kim Neesgaard Seniormester
17. august 2006 - 18:17 #11
Ha - nu fandt jeg (omsider) selv ud af noget (via msdn: http://msdn2.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.datakeys.aspx)!!

Det her virker:

Dim index As Integer = gvListeNy.SelectedIndex
x.Text = gvListeNy.DataKeys(index).Value.ToString()
Avatar billede Kim Neesgaard Seniormester
17. august 2006 - 22:02 #12
Lægger du et svar?
Avatar billede snepnet Nybegynder
17. august 2006 - 22:37 #13
Jep - kommer her. Synes egentlig jeg havde svaret på 14/08-2006 19:07:37... mystikkens.
Mvh
Avatar billede Kim Neesgaard Seniormester
17. august 2006 - 22:45 #14
Hmm - IT!!!
Avatar billede snepnet Nybegynder
17. august 2006 - 22:59 #15
:oD
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester