Getting Started with the LiveGrid Control

LiveGrid is an alternative concept to traditional grids; it is a little bit "special" or at least not "just another grid" because of its data presentation approach through a continuous scrolling, alternative for the traditional previous/next paging. This scrolling mechanism rely on a "built in" Ajax engine which makes the data listing seem like a continuous experience even if the grid virtually may contain tens of thousands of records.

LiveGrid is basically a js component; in spite of that it provides a rich set of effects (row highlight, column sort, column filter, column resize, column freeze, groups, etc), high level of css customization. It also generates cross browser compatible HTML. All these come as a completition to the most valuable characteristic (besides the scrolling concept itself) - speed of the grid page update; this speed is due 3 factors:

  • Data request: by default a GET so just a query string is sent to the server and not the entire form and viewstate as it is in case of a POST;
  • Server processing: usually a custom http handler because just a simple request processing is necessary, instead of using (for instance) a page handler where the server needs to get through the entire lifecycle of the page;
  • Data response: the traffic is represented by the XML that will be parsed to populate the body of the grid table; it can be a lot smaller then the rendered html of an entire page like in a normal POST or GET.

More on the original grid you can dig at: Rico's website or Dowdy's website.

.NET implementation

LiveGrid.NET is the LiveGrid adapted as a server control in ASP.NET. It's basically a wrapper over the original js component, plus it solves a series of ASP.NET integration problems like:

  • Just drag and drop the grid from toolbox and start using it;
  • Js initialization attributes translated into design time browsable properties;
  • Base http handler support so the custom request handling is relative easy to be developed (light column template support, command support, binding with IEnumerable and also with ISourceList, etc).

Target audience

LiveGrid is addressed to those who need the grid as a main and central point of their presentation page and they also need an alternative to the traditional paging since the user needs a simple way to do data navigation.

LiveGrid can be interesting for some because of the built-in Ajax and performance that provides to the user a feeling of uninterrupted data flow experience.

On the other hand, LiveGrid sacrifices some RAD concepts:

  • Not a real server control (the LiveGrid is splitted into two parts: 1. the initializer part - actually a server control, and a 2. renderer part - actually an http handler);
  • No ViewState (the LiveGrid has natively other support for data caching: an (by-default used) built-in data buffer and a caching mechanism).

LiveGrid also doesn't benefit of full "cool" features of various commercial grids proposed by various MS vendors; at least for the moment.