1. Why Should I read this article: As Callback doesn’t cause postback and page rendering neither full nor even partial. We can communicate with server (IIS) and our server side code runs there successfully and could rebind our controls like Dropdownlist, Gridview, Listview, Datalist, Repeater or any server side control to which you assign data but problem is when page wont render, its controls wont render and if controls wont render then changes wont reflect and when changes wont reflect there wont be anything at front end to show on webpage. Article is mainly about Callback and Rendering Controls but through this tutorial you can also learn many other things like brief introduction of Postback, Rendering, Create server side controls dynamically, Create Datatable dynamically in memory to bind with create server side controls means binding, get server side control at client side and set their properties and registering client side event of server side control from/through server side code. First of all, I would like to brief some terms which I believe every web developer should aware of.
2. Postback: Postback is a mechanism of communication between client-side (browser) and server-side (IIS). Through postback all contents of page/form(s) sent to the server from client for processing and after following page life cycle all server side contents get render into client side code and client (browser) display that contents. Callback is another way of communication between server and client. Callback doesn’t follow the page life cycle which followed by in standard postback and doesn’t even cause Rendering.
4. CALLBACK: CALLBACK is lightweight process, It uses well known xmlhttp object internally to call server side method, it doesn’t cause page postback so doesn’t cause page rendering so we to show output at client side we need to make output html ourselves and render controls manually.
7. Real Time Scenario with implementation: Suppose we have categories, subcategories, products data and needs to populate categories and subcategories which depend upon categories data would be populate in two different dropdownlists. For products data which is multicolumn and we need to show that data in tabular format so I would prefer Gridview control. So the situation would be load/populate categories on Page_Load and load/populate subcategories on the basis of selected category using callback and finally load products into Gridview on the basis of selected subcategory. Before starting coding, I would like to write Pseudo code for better understanding.
8. Pseudo Code
1. Create Server side controls e.g. Dropdownlists and Gridview
2. Load Categories on Page load
3. Implement ICallbackEventHandler interface
4. Create subcategories data in server memory to bind to Subcategory dropdownlist.
5. Render control (subcategory dropdownlist) and show output.
6. Create products data in server memory to bind to Products gridview.
7. Render Control (products gridview) and return rendered contents to client side to show
8. Set innerHTML of each control by rendered contents
CREATE CONTROLS (DROPDOWNLISTS, GRIDVIEW)
CALLBACK SERVER SIDE CODE
CALLBACK CLIENT SIDE CODE
Thants it. These are the steps which you need to use to call and get result from server side code using ICALLBACK.
Asynchronously output would be within a millisecond and without Postback J