• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 721
  • Last Modified:

How do I pass a Query String variable from one page to another?

I have written a web site in C# .Net using Visual Studio 2008. I am using the asp.net 3.5 listview control bound to a linqdatasource on my page. I simply want to know how to pass a variable from my listview onto another page containing a listview. I thought the attached would work in my second listviews linqdatasource but I keep getting the error: "Object expected"? The variable I am trying to pass is TrustID. I am using the below link from within my first listviews itemtemplate to open a popup page and pass my variable into the second listview...

<a href="#" id="accountsLink" onclick="wopen('trustAccounts.aspx?trustid=<%#Eval "TrustID")%>', 'popup', 400, 250); return false;" >Pass Variable to ListView 2</a>
<asp:LinqDataSource 
                                            ID="LinqDataSourceAccounts" 
                                            runat="server" 
                                            ContextTypeName="TrustSystemMARTINSPALDINGDataContext"
                                            EnableDelete="True" 
                                            EnableInsert="True" 
                                            EnableUpdate="True"
                                            TableName="TrustAccounts" 
                                            onselecting="LinqDataSourceAccounts_Selecting" 
                                            Where="TrustID = @trustID">
                                            <WhereParameters>
                                                <asp:QueryStringParameter 
                                                    Type="Int32" 
                                                    DefaultValue="706" 
                                                    Name="TrustID" 
                                                    QueryStringField="TrustID" />
                                            </WhereParameters>
                                        </asp:LinqDataSource>

Open in new window

0
Shepwedd
Asked:
Shepwedd
  • 5
  • 2
  • 2
  • +1
1 Solution
 
burningmaceCommented:
Use a session. When you create a session, the variables stored for that session (server side) are kept between pages. A few tutorials and infomation pages are below:

http://asp.net-tutorials.com/state/sessions/
http://www.beansoftware.com/ASP.NET-Tutorials/Managing-Sessions.aspx
http://msdn.microsoft.com/en-us/library/ms972429.aspx
http://quickstart.developerfusion.co.uk/QuickStart/webservices/doc/Intrinsics.aspx

You can also try googling for "ASP.NET Sessions" or "ASP.NET Session Tutorial".

Cheers,
Burningmace
0
 
GeoffSuttonCommented:
What happens if you check the TrustID value in the Page_Load (Request["TrustID"] or Request("TrustID") in VB).  Also, have you tried Where='<%=Request["TrustID"] %>' and get away from the Query Parameters?
Geoff
0
 
sybeCommented:
Session is a bad idea. Sessions are meant for (as the name says) "sessions". Using a session will go wrong for example when a user has two windows open on your application.

<%=Request.Querystring("TrustID")%> should work
0
Cloud Class® Course: Microsoft Exchange Server

The MCTS: Microsoft Exchange Server 2010 certification validates your skills in supporting the maintenance and administration of the Exchange servers in an enterprise environment. Learn everything you need to know with this course.

 
ShepweddAuthor Commented:
sybe,

Where exactly would I place your code? Obviously inside the .aspx page but where? Instead of the <%#Eval "TrustID")%>?

Thanks.
0
 
sybeCommented:
> Instead of the <%#Eval "TrustID")%>?

If that is where you need it, then yes, put it there.
0
 
ShepweddAuthor Commented:
I've now changed LinqDataSource code of the listview receiving the variable to the attached but I still get the same error?
<asp:LinqDataSource 
                                            ID="LinqDataSourceAccounts" 
                                            runat="server" 
                                            ContextTypeName="TrustSystemMARTINSPALDINGDataContext"
                                            EnableDelete="True" 
                                            EnableInsert="True" 
                                            EnableUpdate="True"
                                            TableName="TrustAccounts" 
                                            onselecting="LinqDataSourceAccounts_Selecting" 
                                            Where='<%=Request.Querystring("TrustID")%>'>
                                        </asp:LinqDataSource>

Open in new window

0
 
ShepweddAuthor Commented:
GeoffSutton,

How do I check the TrustID value in the Page_Load?

I've tried your code: Request["TrustID"] in my code behind page_load event but it errors?
0
 
GeoffSuttonCommented:
Sorry... Are you using C# or VB.NET?  With C# you would put a line something like "String tmp=Request.Querystring["TrustID"]" and in VB.NET use 'Dim tmp as String = Request.Querystring("TrustID")'.
Then put a break on that line then run the application.  Once the application breaks on that line you can mouse over the variables and find out their values.  This will ensure that the correct data is being passed and read.  Note:  You will have to hit F11 once for tmp to acquire the value.  If you are getting a value, then in your LINQDatasource, put the same thing (Where='<%=Request.Querystring("TrustID")%>' in VB.NET, Where='<%=Request.Querystring["TrustID"]%>' in C#).  If you are still getting the same error, then the TrustID is not the source of your problems.
Let me know how this works for you.
Geoff


0
 
ShepweddAuthor Commented:
GeoffSutton,

I'm using C#. After using your code my tmp variable is returning null? From my first listview (lvTrustAccounts) I have a button within my itemTemplate which has an onclick event equal to:

Response.Redirect("trustAccounts.aspx?trustid=" + lvTrustAccounts.SelectedValue);

The select statement within this listviews linqdatasource returns the TrustID among other values so I'm not too sure why my page_load is returning null?


0
 
ShepweddAuthor Commented:
This solution is as simple as:

<asp:HyperLink runat="server" id="hlNavigate" NavigateUrl='<%#  "~/trustAccounts.aspx?Id=" + Eval("TrustID") %>' Text="Accounts" />
0
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.

Join & Write a Comment

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 2
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now