The key to the advanced data binding of Telerik RadListView is handling correctly     the 
NeedDataSource 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 listview will not behave correctly.     
     This event fires in the following cases:     
- Right after OnLoad, Telerik RadListView checks the viewstate for             stored listview-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 control             has been set to false, the listview will bind each time the                 page loads (not only the first time)
- After automatic sorting
- When paging event occurs
- When Select command is fired
- Right after Edit/Update/Delete/Insert commands 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 
- When resorting a group
- When filtering fields
- When a call to the Rebind() listview method takes place
- 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 RadListView's DataSource property.     
     In the code of the 
NeedDataSource handler you should prepare the     data source (list of objects) for Telerik RadListView and assign it to the grid's     
DataSource property.     
Note: You should never call the DataBind() method from inside         the NeedDataSource handler or mix simple data-binding mode with         advanced data-binding     Alternatively, you can use 
AccessDataSource/SqlDataSource/ObjectDataSource/XmlDataSource     controls to populate Telerik RadListView with data - this is another advanced data-binding     mode of the control which allows automatic operations as well. See the the rest     of the examples in this section as well as the
 Insert/Update/Delete section     of the online demos for more info.     
     Simple data-binding through the 
DataBind() method can be used in     simple scenarios which does not require complex operations like insert/delete/update,     filtering, etc. 
For advanced features like data editing, filtering.         etc. Telerik RadListView requires advanced data-binding through its 
NeedDataSource     event or a 
data source control as explained above.
     The 
NeedDataSource event is especially designed to facilitate the     work of the developers as you do not need to handle any sorting/paging/filtering/etc.     commands manually. Under such circumstances Telerik RadListView will be "smart     enough" to perform the corresponding operation automatically. This example     illustrates head-to-head comparison between the usage of simple and advanced data     binding.     
     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 
ListView behavior.