By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
431,805 Members | 1,270 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 431,805 IT Pros & Developers. It's quick & easy.

datagrid created from a view

P: n/a
Hello,

I have a datagrid populated with rows from a view. Because they are from a
view, the rows are not actual database records, and therefore lack unique
identifiers.

So I have a command button for each row. When the button is pressed, I want
to go to another page with all the information in that selected row.
Normally I would do this (if the rows are actual records, that is)

//take the datakey value
string selected_id = dgMyDataGrid.DataKeys[e.Item.ItemIndex]

//and do this before tranfering to another page.
Context.Items.Add("uniquekey", selected_id);
Then on the second page, I would take the selected_id and retreive the
record from the database (I've always wondered if that trip to the database
server would be necessary).

But I can't even do this with rows from a view because there is no unique
identifier. But I still want to take the row from the view and give it to
the destination page.
Nov 17 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Couldn't you just put the data from the selected grid row into an object
and store that in the context items collection? (Define your own class or
structure to hold the data, then create an instance of it and place it in
the items.)

Then you could pull the object out on page2 and you would have all the data
you need (rather than just pulling the key out of the context items).

Hope this helps,
bliz
--
Jim Blizzard
Sr .NET Developer Evangelist
Microsoft

Your Potential. Our Passion.

This posting is provided "AS IS" with no warranties, and confers no rights.
Please reply to newsgroups only, so that others may benefit. Thanks.
--------------------
From: "David" <no****@nospam.com>
Newsgroups: microsoft.public.dotnet.framework.aspnet
Subject: datagrid created from a view
Lines: 24
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Message-ID: <Rx********************@twister.socal.rr.com>
Date: Wed, 02 Jul 2003 23:04:17 GMT
NNTP-Posting-Host: 24.24.137.170
X-Complaints-To: ab***@rr.com
X-Trace: twister.socal.rr.com 1057187057 24.24.137.170 (Wed, 02 Jul 2003 16:04:17 PDT)NNTP-Posting-Date: Wed, 02 Jul 2003 16:04:17 PDT
Organization: RoadRunner - West
Path: cpmsftngxa09.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed 00.sul.t-online.de!t-onlin
e.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfee d-east.nntpserve
r.com!nntpserver.com!news3.optonline.net!cyclone.r dc-nyc.rr.com!news-east.rr
com!news-server.columbus.rr.com!cyclone2.kc.rr.com!news2.kc .rr.com!twister.
socal.rr.com.POSTED!53ab2750!not-for-mailXref: cpmsftngxa09.phx.gbl microsoft.public.dotnet.framework.aspnet:31882
X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet

Hello,

I have a datagrid populated with rows from a view. Because they are from a
view, the rows are not actual database records, and therefore lack unique
identifiers.

So I have a command button for each row. When the button is pressed, I wantto go to another page with all the information in that selected row.
Normally I would do this (if the rows are actual records, that is)

//take the datakey value
string selected_id = dgMyDataGrid.DataKeys[e.Item.ItemIndex]

//and do this before tranfering to another page.
Context.Items.Add("uniquekey", selected_id);
Then on the second page, I would take the selected_id and retreive the
record from the database (I've always wondered if that trip to the database
server would be necessary).

But I can't even do this with rows from a view because there is no unique
identifier. But I still want to take the row from the view and give it to
the destination page.


Nov 17 '05 #2

P: n/a
The datagrid's datasource is a collection object.

dgMyDataGrid.DataSource = myCollectionObject.

But I would not know how to make recognize the selected single object within
the collection when the user selects the row. How would I do that in the
web environment. I know that is easy in windows forms.
Couldn't you just put the data from the selected grid row into an object
and store that in the context items collection? (Define your own class or
structure to hold the data, then create an instance of it and place it in
the items.)

Then you could pull the object out on page2 and you would have all the data you need (rather than just pulling the key out of the context items).

Hope this helps,
bliz
--
Jim Blizzard
Sr .NET Developer Evangelist
Microsoft

Your Potential. Our Passion.

This posting is provided "AS IS" with no warranties, and confers no rights. Please reply to newsgroups only, so that others may benefit. Thanks.


Nov 17 '05 #3

P: n/a
But based on the datagrid.SelectedItem.Cells collection you can get the
cells for the selected row in your datagrid during the postback.

Add the data from each of the cells to the instance custom class or
structure, then add that to the cache.

See the "MyDataGrid_Select" method in the example at :
http://msdn.microsoft.com/library/de...us/cpref/html/
frlrfSystemWebUIWebControlsDataGridClassSelectedIn dexTopic.asp.

Note: if you want to run the VB version that sample code you'll have to
change the line
"Dim Cart As DataTable"
to
"Dim Cart As New DataTable()"

Slight bug in the docs.... :)

Hope this helps,
bliz

--
Jim Blizzard
Sr .NET Developer Evangelist
Microsoft

Your Potential. Our Passion.

This posting is provided "AS IS" with no warranties, and confers no rights.
Please reply to newsgroups only, so that others may benefit. Thanks.
--------------------
From: "David" <no****@nospam.com>
Newsgroups: microsoft.public.dotnet.framework.aspnet
References: <Rx********************@twister.socal.rr.com> <22**************@cpmsftngxa09.phx.gbl>Subject: Re: datagrid created from a view
Lines: 33
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1158
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165
Message-ID: <Oj********************@twister.socal.rr.com>
Date: Thu, 03 Jul 2003 01:05:50 GMT
NNTP-Posting-Host: 24.24.137.170
X-Complaints-To: ab***@rr.com
X-Trace: twister.socal.rr.com 1057194350 24.24.137.170 (Wed, 02 Jul 2003 18:05:50 PDT)NNTP-Posting-Date: Wed, 02 Jul 2003 18:05:50 PDT
Organization: RoadRunner - West
Path: cpmsftngxa09.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed 00.sul.t-online.de!t-onlin
e.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfee d-east.nntpserve
r.com!nntpserver.com!news-west.rr.com!cyclone.kc.rr.com!cyclone2.kc.rr.com!n
ews2.kc.rr.com!twister.socal.rr.com.POSTED!53ab275 0!not-for-mailXref: cpmsftngxa09.phx.gbl microsoft.public.dotnet.framework.aspnet:31897
X-Tomcat-NG: microsoft.public.dotnet.framework.aspnet

The datagrid's datasource is a collection object.

dgMyDataGrid.DataSource = myCollectionObject.

But I would not know how to make recognize the selected single object withinthe collection when the user selects the row. How would I do that in the
web environment. I know that is easy in windows forms.
Couldn't you just put the data from the selected grid row into an object
and store that in the context items collection? (Define your own class or structure to hold the data, then create an instance of it and place it in
the items.)

Then you could pull the object out on page2 and you would have all the

data
you need (rather than just pulling the key out of the context items).

Hope this helps,
bliz
--
Jim Blizzard
Sr .NET Developer Evangelist
Microsoft

Your Potential. Our Passion.

This posting is provided "AS IS" with no warranties, and confers no

rights.
Please reply to newsgroups only, so that others may benefit. Thanks.



Nov 17 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.