I was wondering why most of the web sites having articles/blogs about GridView
Sorting, Paging uses ViewState/Sessions objects etc for storing datatable
records for further use. Another way of using was getting data from database on
every request. But, if DB table data is not frequently changing, then why we
need to hit DB every time. Why can't' we store the data somewhere else. Here,
again came ViewState/Sessions objects etc for saving. Is there no other way of
doing it? Yes, we can achieve it by using static classes.
Note:
Am trying to show how we can do it by using static classes, if my way of coding
and logics is not good, please comment on it, so improvement can be done. Also,
this minimizes number of coding lines.
MVS used: 2008/2010
DB used: Northwind
1. Declared a temp Dataset object ->
private
static DataSet
tmpds = new DataSet();,
which was used for storing records
from Database and later used for sorting and paging of GridView.
2. For sorting, declared a temp String ->
static
String tmpSort =
" DESC";, and later using as
dataView.Sort =
e.SortExpression + (string)((e.SortDirection ==
SortDirection.Ascending) ? tmpSort : tmpSort);
tmpSort = (tmpSort == " ASC") ?
" DESC" : " ASC";
You can see on Page Load am calling Timer event
for fetching the records. Also, Timer Interval property was set to 10secs. It
will trigger the event in every 10secs for fetching records from DB; this will
take care of new records updations also.
Sample source codes attached for download and please post your comments.