datagrid created from a view

Discussion in 'ASP .Net' started by David, Jul 3, 2003.

  1. David

    David Guest

    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.
    David, Jul 3, 2003
    #1
    1. Advertising

  2. 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" <>
    >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: <RxJMa.67695$>
    >Date: Wed, 02 Jul 2003 23:04:17 GMT
    >NNTP-Posting-Host: 24.24.137.170
    >X-Complaints-To:
    >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!newsfeed00.sul.t-online.de!t-onlin
    e.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed-east.nntpserve
    r.com!nntpserver.com!news3.optonline.net!cyclone.rdc-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-mail
    >Xref: 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

    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.
    >
    >
    >
    Jim Blizzard [MSFT], Jul 3, 2003
    #2
    1. Advertising

  3. David

    David Guest

    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.
    >
    David, Jul 3, 2003
    #3
  4. 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/default.asp?url=/library/en-us/cpref/html/
    frlrfSystemWebUIWebControlsDataGridClassSelectedIndexTopic.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" <>
    >Newsgroups: microsoft.public.dotnet.framework.aspnet
    >References: <RxJMa.67695$>

    <>
    >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: <OjLMa.94107$>
    >Date: Thu, 03 Jul 2003 01:05:50 GMT
    >NNTP-Posting-Host: 24.24.137.170
    >X-Complaints-To:
    >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!newsfeed00.sul.t-online.de!t-onlin
    e.de!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed-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!53ab2750!not-for-mail
    >Xref: 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

    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.
    >>

    >
    >
    >
    >
    Jim Blizzard [MSFT], Jul 3, 2003
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Ulf Heyder
    Replies:
    0
    Views:
    565
    Ulf Heyder
    Oct 16, 2003
  2. jimjim
    Replies:
    12
    Views:
    1,895
    Ron Natalie
    Jun 3, 2005
  3. tom c
    Replies:
    6
    Views:
    505
    tom c
    Sep 6, 2006
  4. Sunfire
    Replies:
    1
    Views:
    481
    Roland Dick
    Nov 10, 2007
  5. Parthiv Joshi
    Replies:
    1
    Views:
    666
    Samuel L Matzen
    Jul 6, 2004
Loading...

Share This Page