- Add dynamic attributes sortexpression and sortdirection to datagrid first time the page is loaded.
- Assign appropriate column name and sort order to sortexpression and sortdirection attribute respectively to sort data in order to get initial look and feel of data when the page is loaded first time.
- Get dataset and dataview objects. Set sort property of dataview object to concatenated string built using sortexpression and sortdirection dynamic attributes.
- Bind datagrid using dataview object.
- On every consecutive page loads and column clicks, trap sortcommand event of datagrid.
- Compare sortexpression property of the event argument obtained from sortcommand event with dynamic attribute sortexpression.
- If Match is found then
- Check sortdirection attribute.
- If sortdirection equals “ASC” then
i. Assign DESC to sortdirection attribute.
- Else
i. Assign ASC to sortdirection attribute.
- End If
- Repeat steps from Step 3 onwards.
Note: When you run the following code and click the same column two or more times then sort direction is reversed automatically for that column. However if column 3 is clicked followed by column 1 and 2 click then column 3 is sorted only in ascending direction no matter what the sort direction was before for the same column. This is because previous sort order is not preserved in the sortexpression property of the column. The overall result is same depending how you perceive it. This example teaches you how to make use of dynamic attributes and dataview object.