Ho to Get Two datakeys From GridView?

Hi Coding Experts

I have a Grid view, where i have set 2 datakeys( Travel Id and location).
I'm hiding TravelID column, but displaying location in the gridview.On selection of the location,i want to display Location in a textbox, but still have the travelid in a variable.Travelid is a GUID.
I'm not able to get The location in the text box.

here is the piece of code i'm using to get the values:

Also, If i have large number of locations(rows), will the Onselectedchange event handler be the right one to use?

Help Appreciated, Thanks in advance...

Protected Sub GrdLocation_SelectedindexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GrdLocation.SelectedIndexChanged 
Dim TravelId As Guid 
 TravelId = Me.GrdLocation.DataKeys(GrdLocation.SelectedIndex).Value("TravelLocID") .....This gives me an error saing out of index 
TravelId = Me.GrdLocation.DataKeys(e.CommandArgument).Value() ......This give me error saying command argument is not a part of Selected indexchanged
'TxtLocation.Text = Me.GrdLocation.DataKeys(GrdLocation.SelectedIndex).Value("Destination").ToString. .....does not get the value says index out of range
Dim row As GridViewRow = GrdLocation.SelectedRow 
TxtLocation.Text = row.Cells(1).Text.ToString ...No Errors but not able to get the value in text box
End Sub

Open in new window

Who is Participating?
Juan_BarreraConnect With a Mentor Commented:
No problem!
Just a clarification: In the example I gave you, I forgot to change the .Value() for the index or name of the dataKey. So it would be like this

Me.GrdLocation .DataKeys(e.NewSelectedIndex)(indexOftheValueIntheDataKeysCollecion")


Me.GrdLocation .DataKeys(e.NewSelectedIndex)("nameOftheValue")

So, in your case, is:

Dim TravelId As Guid = Ctype(Me.GrdLocation.DataKeys(e.NewSelectedIndex)("TravelLocID"),Guid)

Open in new window

HI SaraDob,

You should be using GrdLocationSelectedIndexChanging to handle your event. In that way, you get an argument e of type GridViewSelectEventArgs. It will give you the new selected index ( e.NewSelectedIndex).
From there, you can access the respective datakeys by using: Me.GrdLocation .DataKeys(e.NewSelectedIndex).Value()
SaraDobAuthor Commented:
Hi Master,
I'm writing this logging from home, as i waited for this solution from morning and left work.
I will work this out from office morrow, as will def let you know about it.
SaraDobAuthor Commented:
Thank you soo much...You really  cant measure,how much pains you have saved...
Well, I'm glad it helped! Good luck!
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.