?
Solved

dynamically changing the datasource in codebehind file

Posted on 2014-08-01
5
Medium Priority
?
185 Views
Last Modified: 2014-08-19
I am using asp.net and C#. I am familiar with gridviews and datasources. However, i cannot figure out a way, using these controls, to dynamically filter results in the code behind from the sqldatasourse I have set up.

So if the query string has user="all", i want it populate the data grid with all records. If user equals a certain name, it will only show records associated wit the user.

I thought about making multiple datasources and swapping them in and out based on what comes in from the query string, but it doesn't work. The table I am getting data from is simple. It has two columns, filename and user. I want the data grid to only show the filename field, and only show what is dictated by the user found in the query string.

Also, very important. I need to wrap every result line in a hyperlink, that will use the filename data to build the final part of the url of the link
0
Comment
Question by:BobHavertyComh
  • 3
  • 2
5 Comments
 
LVL 18

Accepted Solution

by:
Jerry Miller earned 2000 total points
ID: 40234502
You should use parameters instead of multiple datasources. If you use multiple datasources, it will be real messy. Parameters were made for this sort of thing.

http://msdn.microsoft.com/en-us/library/vstudio/z72eefad(v=vs.90).aspx

This way you can return the results that you need.
0
 
LVL 9

Author Comment

by:BobHavertyComh
ID: 40234808
Hi Jerry, it took some reading for me, as I'm not very experienced, but I figured it out and it works, and the best part is that it doesn't bomb without query string values, it does the right thing and merely says no values to display. The problem I still have that I mentioned above, is that I need a way to wrap each of these filename values with a hyperlink or a button to be clicked that is associated with each returned record. This is a list of video files, so I plan to use a javascript click event with each of the results, that will swap out the url for the video tag in html5 to the appropriate video.
0
 
LVL 18

Expert Comment

by:Jerry Miller
ID: 40235150
In your RowDataBound event, you can do something like this;

if (e.Row.RowType == DataControlRowType.DataRow) {
      HyperLink myLink = new HyperLink();
      myLink.Text = columnText;
      myLink.NavigateUrl = "Update.aspx?id=" + columnID;
      container.Controls.Add(myLink);

}

Where columnText is the result that you would like to display in the link and columnID is the key value that you need to navigate in the URL.
0
 
LVL 9

Author Closing Comment

by:BobHavertyComh
ID: 40270800
I finally saw what you meant when creating the datasouce inside VS. There was an option for parameters and it worked. Looks like ot grabs the value after the query string and sets up a variable to do things with for you.
0
 
LVL 18

Expert Comment

by:Jerry Miller
ID: 40270846
Awesome! Glad you were able to get things working.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

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.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
The article shows the basic steps of integrating an HTML theme template into an ASP.NET MVC project
This video teaches users how to migrate an existing Wordpress website to a new domain.
Wufoo.com provides powerful tools for surveying targeted groups, and utilizing data from completed surveys to find trends, discover areas of demand or customer expectation, and make business decisions on products or services.
Suggested Courses
Course of the Month14 days, 21 hours left to enroll

839 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question