RadGrid's simple data-binding through the DataBind()
method can be used in simple scenarios
which does not require complex operations like insert/delete/update, grouping, hierarchy
relations, etc. To use Telerik's ASP.NET DataGrid with simple data binding you should:
- Set the DataSource property. This property points the database which will
be used as a source for your grid instance.
- Call the DataBind() method when appropriate.
The correct approach when using simple data-binding is to call the DataBind()
method on the first page load when !Page.IsPostBack
and after handling some
event (sort event for example). Keep in mind that if you choose simple data-binding,
you will need to assign data-source and rebind the grid after each operation (paging,
sorting, editing, etc.) - this copies exactly MS DataGrid behavior.
Advanced Data-binding(using the NeedDataSource event)
The key to the advanced data binding of Telerik RadGrid is handling correctly the
event. That's why we chose this exact name. 'Need' in this
case actually means that if at an exact moment the data-source property does not
point to a valid data-source object, the grid will not behave correctly.
This event fires in the following cases:
- Right after OnLoad, Telerik RadGrid checks the viewstate for stored grid-related
information. If such information is missing (when the page loads for the first time),
the NeedDataSource event is fired. This also means that if the EnableViewState
property of the grid has been set to false, the grid will
bind each time the page loads (not only the first time)
- After automatic sorting
- When paging event occurs
- When Edit command is fired
- Right after Update/Delete/Insert command event handlers finish execution.
You can cancel these operations handling the ItemCommand event and assigning
false value to the Canceled property of the e event argument
- When grouping/ungrouping columns - right after the RadGrid.GroupsChanging
event is raised.
- When resorting a group
- When filtering column values
- When a call to the Rebind() grid method takes place
- Prior to any detail table binding
- In some other custom cases.
The advantages of using this event are that the developer does not need to write
any code handling the logic about when and how the data-binding should be processed.
It is still the developer's responsibility to construct properly a data source object
and assign it to the RadGrid's DataSource property.
In the code of the NeedDataSource handler you should prepare the data source
(list of objects) for Telerik RadGrid and assign it to the grid's DataSource
Note: You should never call the DataBind() method from inside the NeedDataSource
handler or mix simple data-binding mode with advanced data-binding