What you'Il often find when using a dynamically expandeable grid like Teleriks RadGrid or Kendo's Grid is that the more columns you offer to the user the more data needs to pulled in and the more heavier the query becomes. This happens partially because the grids don't pass the selected columns to the data source.
For example, if we have a Product with many components, locations, and other properties, we prefer not to pull in the properties we don't need.
In what way can the problem of needing to pull in so many data be mitigated? Is it possible to pass the selected columns to the data source? Or can the fields be loaded afterwards via a seperate AJAX call?
I know RadGrid and Kendo Grid are two completely different technologies but I'm interested in the answer to both. I'm sure someone must have seen the same issue with these types of grids.
One way to mitigate the problem is to apply server-side paging to the grid - that way only the data required will go over the wire. Generally the problem with data volume in grids is the rows rather than the columns.
Also, make sure the data source is being queried efficiently, particularly where you are joining data from different tables in your data source.
Related
I am looking at various widget libraries, and ran across OpenUI5. It appears to be reasonably complete. The one thing I can't seem to find is any grouping functionalities for Grids. For example, in other grids, I can grab a column, and drag/drop it into the header portion of the grid, and now my data is grouped by that column. I can do this for multiple levels. After doing this, the data is laid out almost like a combination tree/grid control. I find this very valuable. Does OpenUI5 support this? If not, is it in the plans? Here is an example
OpenUI5 has two main Table controls, one for it's Mobile-oriented library (sap.m), and one for it's Desktop-oriented library (sap.ui.table).
These table's do support drag-and-drop of columns, but for re-ordering not for grouping.
The merging feature of the sap.m table may be of interest, though it's not really the same as grouping. Also note the multi-header feature.
Another control similar to your use-case could be the TreeTable.
But, in short, it does not look like out-of-the-box OpenUI5 has a control that exactly matches your use-case.
I will say that it is pretty easy to extend OpenUI5 controls as they have a nice OO-flavored jQuery extension approach.
You could also open an issue on their GitHub page to make this a priority for a future release.
I'm working on one project where data is coming from the WCF web services and in the List format.
Firstly, Is it possible to assign that list directly to the data grid view? If not then I'm converting that list into Dataset and binding to the Grid but the problem is, Collection List contains thousand of records and converting into Dataset decrease the performance.
Also, This is a direct bing with List or the Dataset to Gridview so is it possible to achieve the paging including First, Previous, Next, Last and Page sets?
Your help would be appreciated.
Thank you in advance for the help!
Dhaval
I dont think you can 'directly' do it but somehow , theres a way. Here is a question of the same matter.
Gridview using a generic list as DataSource and Auto-generating columns
I am building a form for parents to enter health information for their students. Our nurses want to build it similar to what you fill out when you see a new doctor where they have categories and then conditions within the category that you would check if they apply to you. They want the number of categories and conditions to be variable so they can change them willy nilly as desired.
I need some ideas as to how to approach the UI side. My initial thought is a parent gridview with a row for each category and then inside that, a child gridview for each condition with its own checkbox. I already do a bit of work with gridviews and know how to access the nested objects so I'm not terribly worried about how to get the data back.
My question is this: Is there a better way and what suggestions would the community make that might be different or more efficient than using nested gridviews?
+1 for asking is there a better way?
What I'm about to suggest may end up being a little more complicated at first, but rest assured it will be worth it in the end.
There is a JavaScript framework named Knockout.js that is perfect for situations like these. Knockout vastly simplifies situations that where a variable amount of UI controls are needed.
http://knockoutjs.com/
Here is a tutorial on the website that has a similar situation to yours:
http://learn.knockoutjs.com/#/?tutorial=collections
I have been trying to find a solution for this for a while but I've only managed to find junk on outdated forums.
I am using VB6 and I want to display data in a tabular form. I thought about using a DataGrid but I can't figure out how to add rows to the grid.
Note: The DataGrid is not bound to a recordset.
Is there any way to add the data to the GridView without storing it in a recordset. And is there a better VB6 control to use in this situation?
DataGrids are designed to be used bound to a data source, though it can be a custom data source object and not just an ADO Recordset.
For general display you might want to use the MSHFlexGrid (or the VB5 holdover MSFlexGrid).
I am creating a huge html table using StringBuilder in the code behind, based on various search criterias selected by the user. The logic is complex as I have to create sub heading, nested tables etc. and it is really hard to maintain or modify. Is there a better way to deal with such kind of problems?
Thanks!!
All ASP and Html controls are encapsulated in classes. You're interested in the Table class (for ASP) and HtmlTable for the more light-weight, html-only class.
If I had to choose, I'd go for the html one, unless you want to add server-side events to the table.
A few years ago I was in the same situation. The problem included dynamic columns, subheadings, cells, everything. A typical table would be around 1000 rows and 50 columns (that's 50,000 cells!). The original implementation used a GridView and performed horribly. I rewrote the view to use a Repeater, a very light-weight looping control, with Literal controls. That reigned in a bit of the madness vs. 100% StringBuilder. I combined that with a bunch of static methods which returned string representations for standard html bits (kind of like ASP.NET MVC's "html helpers"), as well as keeping the object model completely isolated. It was all very fast (I forget, but I think the way the Repeater and Literal controls are rendered is directly to the response stream, so performance was comparable to StringBuilder, perhaps even better).
Even the above will be complex, and is akin to your own approach. But the key to maintaining sanity is to keep the different pieces separate (object model, html generation, and dynamic binding). It's almost like building your own ad-hoc framework. But for serious jobs like this, you need to get nitty-gritty when confined to web browsers.
There's always the built in native ASP.NET Table control
http://www.w3schools.com/aspnet/control_table.asp
GridView, ListView, DataList, Table e&.