Paging using ASPxGridView

Posts   
1  /  2  /  3  /  4
 
    
tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 12-May-2008 19:19:47   

Otis wrote:

Well, conflict of interest is of course there, but that's not automatically intentional. It might be they overlooked the possibility to add a fallback plan. I mean: if you don't use summaries, if you don't need the grid to pull the data ALL in, why not allow paging the usual way? Also, it doesn't scale well. If the grid is faced to work with a lot of data, thousands of rows for example, no developer should/would allow any grid to pull the data into itself just to calculate some summaries/other scalars. They implemented a feature which has no fallback plan for the situation where it is faced with a lot of data. And I don't think their XPO is the defacto standard on the O/R mapper front, on the contrary... so most people are probably using the grid with a different datasourcecontrol than the xpo one.

I agree about a developer not bringing back a huge dataset, no one person is going to click through 10,000 pages in a grid to look at every record. People would use the grid to drill down and filter the results they want to see and go from there... often times they may be looking for a single item, not 10,000 pages of data. Let's be real.

Not to mention, it seems to me, the summary, etc. seems like they are forcing too much into the grid. I mean they have a whole reporting side group of controls, which that seems like the appropriate place to do grouping and summaries. I would think the grid should be used for information display, editing, inserting, deleting, etc. Kind of a time and place for everything, and reporting features, or summaries and calculations is a report, not so much the function of a grid it seems... or at least in my opinion.

Posts: 1251
Joined: 10-Mar-2006
# Posted on: 12-May-2008 21:48:43   

I will tell you that Telerik is great. Their support is awesome. Infragistics and DevExpress both have support of course - but Infragistics is HORRIBLE, DevExpress is not bad and Telerik is absolutely awesome.

There is only one company with better support than Telerik, forget their name but they make an ORM solution.....I think the product they make is called LLBLCoolJ...wink

Walaa avatar
Walaa
Support Team
Posts: 14946
Joined: 21-Aug-2005
# Posted on: 13-May-2008 10:29:30   

I think the product they make is called LLBLCoolJ

LLBLCoolJ, that's pretty close to our product name. People can't come up with genuine names any more smile

braidiano
User
Posts: 40
Joined: 18-Nov-2006
# Posted on: 13-May-2008 20:01:56   

Hi,

I have the same issue with DevExpress ASPxGridView cry

I also opened a support request, and they replied me that -this behavior is by design- and provided me some links to the Wrapper Soltion (that doesn't support all the features, like filtering, grouping, etc..)

so.. there is any other "workaround" way, that we can suggest to DevExpress support to solve this problem and will make the grid works properly using LLBLGenPro2 DataSource controls? (like an event to handle pagination and setting the pagination params?)

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 13-May-2008 20:09:49   

braidiano wrote:

Hi,

I have the same issue with DevExpress ASPxGridView cry

I also opened a support request, and they replied me that -this behavior is by design- and provided me some links to the Wrapper Soltion (that doesn't support all the features, like filtering, grouping, etc..)

so.. there is any other "workaround" way, that we can suggest to DevExpress support to solve this problem and will make the grid works properly using LLBLGenPro2 DataSource controls? (like an event to handle pagination and setting the pagination params?)

I sent them a new Request letting them know I was possibly going to invoke my 60 Day Money back guarantee and switch to Telerik. Explained in great detail that I thought their wrapper idea was half-baked... and that there were many threads in the forums, and in the support area regarding true DataSource control integration with their grid. I also reiterated how it seems they are trying to force their customers to use the XPO product, which is no where near the caliber of LLBLGen.

Here is an excerpt from my last support message:

I think you seem to ignore most of my posting here, it seems that there needs to be a more open implementation of your grid. I have been suggested to look at Telerik, and some of my examples in this post point to those, and it seems you say you want feedback, but from many messages about IListServer, being a sole-propriety class, it does not bode well as a true implementation for all DataSource controls out there, LLBLGen included.

It seems that while you have a great grid, I almost think y ou have put too much into it... It seems to me that the reporting functionality of summaries is your main stumbling block in saying you support a DataSource control that does not implement IListServer.

It seems you should offer a developer an event such as GetData and create some EventArgs that pass in like a FilterExpression, SummaryExpress, GroupExpression, Paging, etc... Leave it up to the developer to parse out that information and return to correct data.

If a Developer has a method of getting that data better than LinqToSql, or XPO or whatever, leave the ability for the developer to take control and write code.

If DevExpress wants to truly offer the best controls, I think you are a bit behind Telerik in this realm... and the pricing is identical, for a much more robust interface for a developer. As stated here and in other threads in the forums and support center that I have seen, it seems there is a bit of conflict of interest in pushing your XPO product. The reason behind that, is whenever there is something not quite working, the response from Support, "use our XPO product and it will work" ... not let's talk it through and see what we can do to make our grid more universally supported by all the other DataSource control builders out there...

So can we get real here and work through this, and not a "yeah, we'll consider this... and never implement" ... I know there have been articles written by Julian about whether or not the controls work for what we need, etc. and an article about work-arounds, etc... But I think if you sit back and think about this, this is a real problem. Trying to solve the entire world by a Read Only LinqServerModeDataSource is not the answer. While it many instances that is more than sufficient, the problem lies in large datasets in which you boast the great performance. It would be nice to boast that performance without boxing your customers into a limited direction.

I think Telerik does something like the part where I say "It seems you should offer a developer an event such as GetData and create some EventArgs that pass in like a FilterExpression, SummaryExpress, GroupExpression, Paging, etc... Leave it up to the developer to parse out that information and return to correct data."

Of course, no response.

DvK
User
Posts: 318
Joined: 22-Mar-2006
# Posted on: 13-May-2008 22:58:38   

If you read this thread, they were not that unwilling to make the grid work properly with LLBLGen using the new Linq provider, or am I wrong....?

http://community.devexpress.com/blogs/ctodx/archive/2008/04/01/server-mode-using-linq-let-s-wax-rhapsodic.aspx

It works in pretty much the same way as XPO, but instead of generating SQL statements the implementation generates LINQ queries and then invokes the LINQ provider to execute them and return the data as an enumerable list.

This is — to this CTO anyway — an absolutely brilliant solution to the problem. It's positively elegant. Have you got some data in SQL Server database that you want to display in a grid? Use either the original server mode with XPO or the LINQ to SQL. How about some data in XML form in our ASP.NET grid? Use the new LINQ provider support. Do you use LLBLGen Pro? Try out their new LINQ to LLBLGen Pro beta with our grids. Heck, I'm feeling the need to write my own IQueryable implementation over some old data or other just so I can show that data in one of our grids.

Suddenly, we've expanded our server mode technology over a much larger universe of data. Already there's a host of LINQ providers and they're being written all the time (there's a pretty exhaustive list on Charlie Calvert's Links to LINQ page).

grtz, Danny

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 13-May-2008 23:07:07   

DvK wrote:

If you read this thread, they were not that unwilling to make the grid work properly with LLBLGen using the new Linq provider, or am I wrong....?

http://community.devexpress.com/blogs/ctodx/archive/2008/04/01/server-mode-using-linq-let-s-wax-rhapsodic.aspx

Yes and no... The LinqServerModeDataSource they are talking about is Read Only... While it might support display, that means I have to write extra code simply to allow for Insert/Edit/Delete functionality... while that would indeed do that trick, for displaying... but why should I be forced to write this extra code when most grids support a DataSource control implementation...?

So yes, utilizing Linq, paging works. Better than nothing I suppose.

Posts: 1251
Joined: 10-Mar-2006
# Posted on: 14-May-2008 05:41:22   

Seriously, why not just switch to Telerik and be done with it?

Seth avatar
Seth
User
Posts: 204
Joined: 25-Mar-2006
# Posted on: 14-May-2008 06:09:47   

Two reasons (at least for me): 1. DevExpress has better winforms stuff. 2. It is cheaper to get their winforms/asp.net stuff bundled together

braidiano
User
Posts: 40
Joined: 18-Nov-2006
# Posted on: 14-May-2008 09:23:35   

Seth wrote:

Two reasons (at least for me): 1. DevExpress has better winforms stuff. 2. It is cheaper to get their winforms/asp.net stuff bundled together

The same as Seth: I have a DevExpress subscription and I have all their controls, both Web And WinForms. I think that their control are very well, except this paging issue, that is a very big problem rage

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 14-May-2008 09:31:47   

I'll open a new ticket at their system today, pointing to the thread I added to their forum and I'll request a change/fix for this. I'll keep you posted what they'll report.

DevExpress has to understand that it's in general a big pain to deal with control vendors as in general, the controls that are on the market differ from the default .NET control behavior in one way or the other, and we're pretty fed up by this. Granted, DevExpress' winforms stuff is OK and doesnt' cause problems, but that's not to say for their webstuff (but many control vendors have, sorry to say it, crappy web controls. )

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 14-May-2008 09:48:20   

http://www.devexpress.com/Support/Center/p/B94512.aspx

Let's see how quick they close this with 'duplicate'. wink

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 15-May-2008 15:55:29   

DvK wrote:

http://community.devexpress.com/blogs/ctodx/archive/2008/05/14/extended-datasource-apis-with-the-aspxgridview.aspx

I replied. simple_smile

I find this discussion becoming more and more a non-issue. Paging is essential for forms which work with large sets of data. That's a given. You can't toss that out of the window as something you can emulate elsewhere... that's impossible...

So they should make a choice: create code which allows developers to produce the data like summaries/totals etc. if paging is enabled and otherwise do it on the client. Now, the developer doesn't have a choice: paging is simply not performed.

Linq is also not the answer... linq is readonly data: you cant SAVE data pulled from the db using an IQueryable, unless you know what to call. But that requires another interface/control, which is already there: the datasourcecontrol.

Frans Bouma | Lead developer LLBLGen Pro
DvK
User
Posts: 318
Joined: 22-Mar-2006
# Posted on: 15-May-2008 17:07:53   

I saw your impressive reply to mr. Bucknalls throw of his bat into the "hoenderhok". How do you translate that anyway ?? smile

Very nice !

grtz, Danny

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 15-May-2008 17:18:15   

DvK wrote:

I saw your impressive reply to mr. Bucknalls throw of his bat into the "hoenderhok". How do you translate that anyway ?? smile

Very nice !

grtz, Danny

simple_smile

"To Stir up the <insert target here>" wink

Frans Bouma | Lead developer LLBLGen Pro
Seth avatar
Seth
User
Posts: 204
Joined: 25-Mar-2006
# Posted on: 15-May-2008 17:54:56   

I added my two cents to the post. I hope they fix this...

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 15-May-2008 18:02:55   

Seth wrote:

I added my two cents to the post. I hope they fix this...

I added a few comments myself and it seems you and I are on the same page (pun intended) ... I think they have tried to push some many reporting features into the grid, they forget what a grid is really useful for, and it is hard to use it as a grid.

I hope they retool it to make everyday use the default, and the summaries/totalling a bit of extra work to make it work. I agree, summaries/totalling more like a report function.

I hope others post in thier blog, the more people, perhaps that will take a serious look...

I had been going back and forth with a Support Ticket, and I get a response today saying the blog was in response to my constant feedback about this. They also asked me to create a Telerik project showing it could be done...

Since you have been with Telerik, do you think their grid is more in line with everyday grouping, filtering, and paging with the LLBLGenProDataSource? Or is it equally hindered?

Seth avatar
Seth
User
Posts: 204
Joined: 25-Mar-2006
# Posted on: 15-May-2008 18:26:57   

tzarger wrote:

Since you have been with Telerik, do you think their grid is more in line with everyday grouping, filtering, and paging with the LLBLGenProDataSource? Or is it equally hindered?

I used it once for a small project and found that it had no dificulty with the LLBLGenProDataSource. I guess I could fire it up and try to see how it works. Someone else must have used it in the "normal" way.

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 15-May-2008 18:32:07   

I can use the LLBLGenProDataSource pretty normally with the ASPxGridView, I can do sorting, filtering, grouping, etc... I have not tried Summaries/Totals as I have not had the need... the only time I came into a problem, paging... I wondered why my grid took so long to load, because the grid did not send paging info, and it load over 500,000 rows from the database to show 20 ... Yikes! After that, with LLBLGenProDataSource caching, things we ever so speedy! But that inital hit, wow... not to mention, too many people on the site doing that, and there goes my server...

Posts: 1251
Joined: 10-Mar-2006
# Posted on: 15-May-2008 18:51:49   

Telerik. I use it and I use it with paging, grouping and summaries. In many cases I do not use LLBLGenProDataSouce, but just pass a collection to it. However, it works like this:

If you turn paging on with summaries, the summary will be a sum of what is in the current page that is returned. If paging is off, the summary will be a sum of the entire dataset.

If you want to have paging on and show a summary representing the entire dataset, you can subscribe to an event to calculate that summary. When that event is called you can run a query or whatever you want to figure out what goes in the summary.

Works very nicely. Much like you guys have suggested, by default it works and works without code if you turn the options on. If you want a summary that summarizes the entire dataset in a grid with paging, then clearly you would need to write a bit of code to give the grid that data.

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 15-May-2008 18:58:18   

WayneBrantley wrote:

Telerik. I use it and I use it with paging, grouping and summaries. In many cases I do not use LLBLGenProDataSouce, but just pass a collection to it. However, it works like this:

If you turn paging on with summaries, the summary will be a sum of what is in the current page that is returned. If paging is off, the summary will be a sum of the entire dataset.

If you want to have paging on and show a summary representing the entire dataset, you can subscribe to an event to calculate that summary. When that event is called you can run a query or whatever you want to figure out what goes in the summary.

Works very nicely. Much like you guys have suggested, by default it works and works without code if you turn the options on. If you want a summary that summarizes the entire dataset in a grid with paging, then clearly you would need to write a bit of code to give the grid that data.

Interesting, Plato at DevExpress pointed to the NeedCustomData event (CustomPaging Demo on Teleriks site) and pointed out that when doing sorting and grouping it returns all rows. So he is saying that Telerik is plagued by the same problem, but from you are saying, that is not entirely true.

It sounds like Telerik has the events in place to handle it, granted it might be more code to get summaries/totalling on the entire datatable and then only return the page to the grid.

Have you been able to use the LLBLGenProDataSource with paging on their grids out of the box?

Posts: 1251
Joined: 10-Mar-2006
# Posted on: 15-May-2008 19:22:55   

Telerik provides a NeedDataSource event. In that event you can hand the grid the data it needs. So, in NOT using a LLBLGenProDatasource I do something like this:


RadSearchResults.MasterTableView.VirtualItemCount = myCollection.GetDbCount(filter);
//RadGrid is a zero based page index
RadSearchResults.DataSource=myCollection.GetMulti(filter, 0, sort, null, null, RadSearchResults.CurrentPageIndex+1, RadSearchResults.PageSize);

Clearly that pages and the grid definately only reports on the rows I give it.

When using an LLBLGenProDatasource, I am using it out of the box with paging, but when doing these grouping grids and such, I tend to provide the data in code. I have NOT looked at the LLBLGen sql output to see what is requested when using LLBLGenProDataSource.

I have just submitted a support ticket to Telerik and pointed them to this thread. Let's see what they have to say. If they do not respond, I could prepare a demo to check/prove this scenario.

If you look at the CustomPagingDemo - you can see the grid is provided the data to show via a call to a business object that restricts what is returned to the grid to the pagesize, UNLESS the grid is sorted or grouped - where it gives the grid ALL rows. So in this case, clearly all the rows are ending up in the grid - this has nothing to do with passing 'zeros' as the paging parameters though. Interested to see what Telerik says on this too. I think this thread has 'morphed' a bit from 'zeros passed into datasource control' to 'all records returned when grouping/sorting a grid'. In the telerik world, I guess you could look at the current group expression and sort your return values by that group and only return one 'page' of data, much like Otis said in his forum post a devexpress. This particular online example is an example of

Have you been able to use the LLBLGenProDataSource with paging on their grids out of the box?

tzarger
User
Posts: 87
Joined: 14-Jun-2007
# Posted on: 15-May-2008 19:58:19   

WayneBrantley wrote:

I think this thread has 'morphed' a bit from 'zeros passed into datasource control' to 'all records returned when grouping/sorting a grid'.

The ultimate problem here, ASPxGridView NEVER passes paging information, regardless if you do anything like sorting, grouping, filtering, etc. There is also no way to set a VirtualItemCount either...

So therein lies the root of the problem. No Paging info, ever.

Posts: 1251
Joined: 10-Mar-2006
# Posted on: 15-May-2008 20:10:49   

Well, that Telerik demo (http://www.telerik.com/DEMOS/ASPNET/Prometheus/Grid/Examples/Programming/CustomPaging/DefaultCS.aspx ) shows that does work with an ObjectDataSource, no code necessary.

1  /  2  /  3  /  4