How to update an updatepanel using regular links?

Posted on 2007-12-04
Medium Priority
Last Modified: 2013-11-07
Hey everyone,

I have been breaking my brains over this one. The client we have really wants to use AJAX, and I say good for him, however there are some things that are a little harder to acchieve for this client.

For a part of what I am building we need to show the products they have, it's a shop that sells every kind of battery you can imagine. Normally I'd be thinking in the likes of repeaters or possibly a gridview to display the lists of products he has. However, the system that is running on the background requires some special concideration. The way I need to get the data out of there is done in their own special way and always returns me a so called SumatraVT.ResultSet, if I'd be in luck, I'd be able to bind that to the repeater, but...I am NOT in luck. ;)

It turned out I had to write out the entire thing from codebehind, so instead i created two literals inside the updatepanel. One to hold the products for the selected page, one to hold the pagination. I also added buttons to make sure I could jump from page to page. That works fine, but it does get confusing when you can see on which page you are by seeing the pagenumber below, but you can't click the link.

Now if this would have been without AJAX, that would have been easy for me, I'd just add a querystring value to tell the page to which pagenumber I'd want to go. Easy peasy right? But with AJAX and an updatepanel...I am at a loss. For all I know I need to be able to execute a server side function to make sure the page gets updated, but I cannot trigger a postback using an ordinary link, nor can I add a function that needs to get executed WHEN I click that link.

I'll admit I've been working on this for far to long which has clowded my mind a bit so I am not seeing any other solutions either at this point in time. Is there anyone out there that could solve my problem so I could give the pagination in a way that would be logical to use?

Thanks in advance. Just ask if you need to see any of my code. Although it really is a mess if you don't know this Sumatra system. (I've been building workaround upon workaround)

Kind regards,
Question by:DreamMaster
  • 3
LVL 11

Expert Comment

ID: 20401955
Just thinking about "the bigger picture" and taking a step back, would it not be possible to write a method to convert SamatraVT.ResultSet into a datatable/dataset, save the datatable into a session variable and use the standard repeater/gridview controls? Obviously this would depend on the size of the data and the load on the server.

LVL 19

Author Comment

ID: 20402226
I seriously doubt it would. The resultset it produces works a bit like a reader would, but still is not compatible to it. What i've been doing since I couldn't use recordcount either, was placing the results into an arraylist, as I CAN check the length of that.

I would definately love it if Sumatra would be conform the standardized ASP.NET code, but it seems to need workarounds to get what I need done.

If only I knew how to convert this back to a dataset i'd be a happy geezer. I could do it by hand, but I think the load would be quite heavy. Everytime I am extracting data from the Sumatra Resultset the entire application slows down. When debugging I can even see that it's the Sumatra parts that take that long.. If only I could have done without the Sumatra system, this site would have been finished long ago. ;)


Accepted Solution

cwoods08 earned 2000 total points
ID: 20412008
I think it may be possible to covert the data into a dataset.  You may look at using a webservice with AJAX to help control the page load times.  This article can explain how to do that; http://visualstudiomagazine.com/features/article.aspx?editorialsid=2374.

The other option would be to set the UpdateMode to conditional for the Update Panel.  This would allow you to update the contents of that panel with a call in your server side code.  This would allow you to use your link with a query string to tell the Update Panel to update from your server side code.
LVL 19

Author Comment

ID: 20418547
I'll look into that as soon as I can, may have to pull it over the weekend though, as I am not going to be working on the same project anymore this week. I will get back to you as soon as possible.

LVL 19

Author Comment

ID: 20448212
Well, I have managed to get the links working in a way that they show me a second page. There are some cosmetic differences and the fact remains that it triggers a page reload. Makes my updatepanel kinda useless in that regard. ;) It does however work, so that's something to start with. I would really like to get it updating my update panel without a page reload however, but I am afraid that's not going to work.

To make things a bit more clear to you. I have an updatepanel which shows the results of two CascadingDropDown boxes, and a third one which is hidden and just collects the value of a category I've chosen. So I have CascadingDropDown1 which is the category (for example Laptop batteries), after that I see two more Cascading DropDowns, first one is the brand, (for example Acer), the next one is the type of battery. When I have chosen those two values, or possibly only the first one (as both is possible) I get my results. When the pagesize is smaller than my results, I create pagelinks, when clicked, I'd like to get the updatepanel that was refreshed when I got my CascadingDropdowns filled, refreshed WITHOUT a page reload.

With normal links I haven't found a way to do that, since they don't trigger a Postback and I can't tell them which function to execute server side either. Clicking the links with querystrings (so that the CascadingDropDowns know which values were chosen and I know what page was selected) works, but reloads my page, which I was trying to keep from happening.

However, having said that. Producing the correct result is more important to me than doing that without a page reload. So I am happy to have it working to some extend..

I will keep this question open for a bit longer, hoping someone may know a way to do this without a page reload, but I am not clinging to that hope too much.


Featured Post

Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

Question has a verified solution.

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

Parsing a CSV file is a task that we are confronted with regularly, and although there are a vast number of means to do this, as a newbie, the field can be confusing and the tools can seem complex. A simple solution to parsing a customized CSV fi…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
Look below the covers at a subform control , and the form that is inside it. Explore properties and see how easy it is to aggregate, get statistics, and synchronize results for your data. A Microsoft Access subform is used to show relevant calcul…
Suggested Courses

809 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