2.1. Storing Changes2.1.1. Implementing Write Behaviors Declaratively2.1.2. Using Stored Procedures for Declarative Writes2.1.3. Implementing Write Behaviors Dynamically (with Code)2.2. Enabling Callback Compression2.3. Catching Callback Errors Using an ASPxHttpHandlerModule2.3.1. Displaying Callback Errors2.3.2. Redirecting Callback Errors to a Specific Web Error Page2.3.2.1. Logging Errors in Application_Error Event2.3.2.2. Implementing an Error Logging IHttpModule2.4. Binding the ASPxGridView to an ArrayList or Collection2.4.1. Binding an ArrayList to an ASPxGridView2.4.2. Binding a Generic Collection to an ASPxGridView2.4.2.1. Defining Custom Entities and Collections2.4.2.2. Initializing Custom Collections2.4.2.3. Using Test Projects2.4.2.3.1. Implementing an Object Dumper Using Reflection2.4.2.3.2. For Fun: Implementing an Object Dumper with LINQ2.4.2.4. Binding a Custom Collection to an ASPxGridView2.5. Using Unbound Columns2.6. Implementing a Custom Sort2.7. Exporting Grid Data2.7.1. Exporting ASPxGridView Data to PDF, RTF, CSV, and XLS2.7.2. Adding Export Detail with the RenderBrick Event2.7.3. Implementing Your Own Exporter2.8. Using Master and Detail Grids2.9. Saving User Customizations with Cookies2.10. Programming Client-Side Events2.10.1. Adding an ASPxPopupMenu to an ASPxGridView2.10.2. Implementing the ASPxPopupMenu Behavior2.10.3. Debugging JavaScript2.11. Using Custom Script Properties2.12. Enabling Horizontal Scrolling2.13. Displaying Images Directly from a Database in a Template Region2.13.1. Displaying Images from a Database Manually2.13.2. Displaying Images from a Database in the ASPxGridView2.14. Summary