views:

1590

answers:

8

Hi, I am developing a commercial MVC2 app that requires a grid that has callback update in some form to support 10,000+ rows. It should also support relatively rich content (icons, multiline descriptions etc). Although it requires the usual paging/scrolling/sorting features it does not need support for grouping. So nothing that special.

The commercial grids I looked at were Component Art and Telerik which both look pretty good but may be a little OTT for what I need. They are also $800 and $999 respectively (1 developer).

I've also looked at jqGrid and the grid from MvcContrib. These appear ok but for a commercial app I am concerned that these may be risky options - though could be wrong there.

I'd really appreciate any views/exprience on either the above grids or perhaps you can suggest a better option/approach.

FYI I am using EF4 and C#.

Cheers

+4  A: 

Honestly, you can develop your own with MVC rather easily giving you all that you need. Though I suppose if you need something quick that works, the MvcContrib grid is great.

Chris Conway
Thanks Chris. Can you point me in the direction of any recommended samples or resources?
Nick
You can start with a foreach loop that renders a single table row with each iteration
Richard Ev
+1 for MvcContrib. I use it, for most grid tasks it will work just fine. If you are looking for uber functionality, Telerik or DevExpress would be the way to go.
Chuck Conway
A: 

There is a DevExpress grid much the same as Telerik which again might be over the top for you. However you can buy the grid on it's own rather than the whole suite although it may not be worth doing that since the grid is almost half the price of the suite.

PeteT
Thanks - better if the grid is a separate product yes. However I can't see any mention of MVC - or have I missed that?
Nick
Ok I did come across this: http://www.devexpress.com/Support/Center/KB/p/K18375.aspx so appears it does support MVC2 - need to read more on this though as no mention on their 'brochure' site.
Nick
That is a good point MVC is a new addition for DevExpress I can't say I have tried it outside webforms yet so maybe not the best choice unless you have the time to experiment with the trial version.
PeteT
A: 

My last shot at components for ASP.NET MC was not succesfull. Its so much harder to have a controll for MVC then for old school ASP.NET.

  • the routing the controll expects has to mapp nicely to the routing of your application
  • things get much harder when you have more then 1 grid on the page
  • if the controll has to work for non-Javascript enabled clients your choices are even more limited
  • if the back button of the browser needs to be working your choice is even more limited

In my case it turned out that it was much better to use plain html and jquery to realise paging, sorting and filtering for a table. I would draw the line if your site is more a public website (like mine) or an application that has a web frontend.

Malcolm Frexner
Hi Malcolm. I think I have been through a similar experience over the last few weeks. Our application is a medium-size data intensive enterprise web app with a significant number of relatively complex screens (multiple controls, grid etc). I have struggled with the move from ASP.NET to MVC - not because of the architecture/approach but because of the complexity around delivering a great user experience without a huge investment in jQuery and associated (early-stage) controls. This is too risky for us and we are now back on ASP.NET 4.0 web forms. No doubt I will revisit MVC! Thx
Nick
I think you made the right choice. My project is a public facing website and MVC was a good framework to use. For your project Viewstate seams like a present from heaven.
Malcolm Frexner
A: 

We use the ExtJS grid in out ASP.NET MVC project. http://www.extjs.com/deploy/dev/examples/grid/array-grid.html

Jesper Palm
+3  A: 

I have quite a bit of experience with jqGrid, the grids from DevExpress and telerik, as well as ExtJS. By far, my favorite of the bunch is jqGrid. I'm not concerned with lack of support or the project going away. They had just recently introduced a redesigned grid for use with MVC: http://www.trirand.com/blog/?p=639

telerik and DevExpress are both excellent in their own way. A friend of mine has had issues with the eventing model of the telerik grid, and I've experienced quite a bit of 'html bloat' from the DevExpress grid. telerik has great support for doing things like reordering columns on the client side, while the DevExpress grid requires a call back to do this.

ExtJS is wonderful, but I really feel that it is a very heavy JavaScript grid. Performance in IE can be dreadful with the ExtJS grid. It generally performs well if you do not have a lot of columns, or do not try and put more than one grid on a page. You'll want to definitely avoid putting the ExtJS grids into Tab controls, as all sorts of issues arise when the grid is rendered to a non visible element.

We've actually just recently decided to switch all of the grids used in our reporting system over to telerik's Silverlight grids, which perform beautifully compared to their JavaScript counterparts.

Hope this helps, and good luck.

Jeff Schumacher
Jeff, that's excellent advice thanks. I did briefly look at jqGrid but will now go through a full evaluation of this. Silverlight would be nice but not really an option for this project.
Nick
A: 

I recently research about this and the winning was jQgrid for performance is the Best!

VictorV
Yeah have to agree. The jQGrid has lots of useful functionality, it's easy to program against, professional looking and there are plenty of articles out there to help you get the most from it.
Peanut
A: 

Avoid Ext JS

I had used ExtJs Grid, but it is not good in the projects whose data size will be more than 10000 rows, it will be slow, some times even miss the data.

Vijender
+1  A: 

give a look to the datagrid of the MVC Controls Toolkit. It appears quite flexible. It allows editing, deletions, insertions and paging. Moreover it is really easy to move the changes to a DB in the controller. Look at it here.

marco