dynamically changing the datasource in codebehind file

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
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Jerry MillerCommented:
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.


This way you can return the results that you need.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
BobHavertyComhAuthor Commented:
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.
Jerry MillerCommented:
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;


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.
BobHavertyComhAuthor Commented:
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.
Jerry MillerCommented:
Awesome! Glad you were able to get things working.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.

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.