Blue Theme Orange Theme Green Theme Red Theme
 
Discover the top 5 tips for understanding .NET Interop
Home | Forums | Videos | Advertise | Certifications | Downloads | Blogs | Interviews | Jobs | Beginners | Training
 | Consulting  
Submit an Article Submit a Blog 
 Jump to
Skip Navigation Links
TechnologyExpand Technology
WebsiteExpand Website
Team Foundation Server Hosting
Search :       Advanced Search »
Home » Current Affairs » GridView Sorting, Paging without using Session, ViewState or Cache

GridView Sorting, Paging without using Session, ViewState or Cache

In this article you will learn how to use GridView Sorting, Paging without using Session, ViewState or Cache.

Author Rank :
Page Views : 5763
Downloads : 162
Rating :
 Rate it
Level : Beginner
   Print Read/Post comments Post a comment  Similar Articles  
   Email to a friend  Bookmark  Author's other articles  
Download Files:
GridView_Sorting_Paging.zip
 
 
DevExpress Free UI Controls
Become a Sponsor
 Tag Cloud
 Latest Jobs
More ... 
 Latest Interview Questions
More ... 


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.
 

Comment Request!
Thank you for reading this post. Please post your feedback, question, or comments about this post Here.
Login to add your contents and source code to this article
 [Top] Rate this article
 
 About the author
 
Suthish Nair

Mindcracker MVP

Technical Team Lead, Application Developer.

Looking for C# Consulting?
C# Consulting is founded in 2002 by the founders of C# Corner. Unlike a traditional consulting company, our consultants are well-known experts in .NET and many of them are MVPs, authors, and trainers. We specialize in Microsoft .NET development and utilize Agile Development and Extreme Programming practices to provide fast pace quick turnaround results. Our software development model is a mix of Agile Development, traditional SDLC, and Waterfall models.
Click here to learn more about C# Consulting.
 
Introducing MaxV - one click. infinite control. Hyper-V Hosting from MaximumASP.
Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
Dynamic PDF
ceTE software specializes in components for dynamic PDF generation and manipulation. The DynamicPDF™ product line allows you to dynamically generate PDF documents, merge PDF documents and new content to existing PDF documents from within your applications.
Discover the Top 5 .NET Memory Management Fundamentals
To write the best .NET code, you need to know exactly how the .NET framework really manages memory. Ricky Leeks presents the Top 5 fundamental facts of .NET memory management. Learn more.
Nevron Chart for .NET 2010.1 Now Available
The leading .NET charting control now features PDF, Flash and Silverlight export, visualization of large datasets and more. Deliver true charting functionality to your BI, Scorecard, Presentation or Scientific apps. Download evaluation now.
ASP.NET 4 Hosting
Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites – Click Here!
 
 Post a Feedback, Comment, or Question about this article
Subject:
Comment:
Discover the top 5 tips for understanding .NET Interop
Become a Sponsor
 Comments
Wondering by Meyyappan On September 14, 2010
Hi,
Just wondering that static object will be shared across all users.
say if second user sets new value for dataset,first user also will get the new value isnt it?
Pls coorect me if im wrong
Reply | Email | Modify 
Trade by Felipe On September 16, 2010
Nari, my question would be on what the trade would be like; What would be the memory implications when you have an increasing amount of concurrent users? I always thought that static members shouldn't be associated with specific objects.  
Reply | Email | Modify 
static by Suthish On September 17, 2010

Hi,

Thanks for the comments, i was waiting for some discussions about static topics.
Because sometime its a difficult topic to understand, am still learning. :-)

You are right, the above article not saying this a final solution to avoid session, veiwstate etc.
But to an extend you can avoid those. If you are sharing same datatable/dataset across all users/sessions, then you can try above article.

This line will always reset the dataset and bind new updated records if needed.
 private static DataSet tmpds = new DataSet();
There will be always one copy of tmpds. I think this will not increase the variable/obects count in memory,
only the dataset will get refreshed with new records. If am wrong, please correct me.

But, if your datatable/dataset is different against every sessions then i will not suggest above article.
Static variable is not good to store user-specific data.

Also, you can change your logic in removing static variable (tmpSort) and use a Label control for storing sorting value.

<asp:Label ID="lbl1" runat="server"> DESC</asp:Label>
//private static String tmpSort = " DESC";
dataView.Sort = e.SortExpression + (string)((e.SortDirection == SortDirection.Ascending) ? lbl1.Text : lbl1.Text);
lbl1.Text = (lbl1.Text == " ASC") ? " DESC" : " ASC";

A Static variable has only a single lifetime, which lasts for the entire time your application is running.
Resetting of application pool or IIS reset will helps clear the data.

Reply | Email | Modify 
Why not use the Cache? by Andrew On October 25, 2010
There's already an object to do what you want, the Cache.  You can stick your DataSet in the Cache like this:

Cache["MyDataSet"] = myDataSet;

You get it back out of the Cache like this: 

DataSet myDataSet = (DataSet)Cache["MyDataSet"];
if (myDataSet == null)
{
     myDataSet = LoadMyDataSet( );
     Cache["MyDataSet"] = myDataSet;
}

You can control how long the data remains in the Cache.  For example, you can have the Cache drop your DataSet every 20 minutes.   So the next time you need it after 20 minutes, the data will get reloaded.  There are many other features, and the Cache is optimized to work with your server. 

There's no need for you to rewrite the book when there's already something there.  If the Cache is not sufficient, there are other very well developed alternatives such as the MongoDB or SQLite. 

So I think you have a clever idea, making a static DataSet, but it's not necessary.

Reply | Email | Modify 
Re: Why not use the Cache? by Suthish On October 25, 2010
Hi,

I accept your comment, using cache we can do the same thing.

The article saying, if you have same data or kind of online data
thats needs to share across all users we can use statc variable.
Reply | Email | Modify 
One other thought by Andrew On October 25, 2010

One other thought.  If your web application is running on multiple servers, you may have problems with static variables.  You may also have problems using the Cache, but that's a different issue.

I've seen articles about problems with static variables in IIS.  See for example http://sharenotes.wordpress.com/2010/01/07/static-variables-issue-in-shared-hosting-or-multiple-servers/ 

So again, I think it's a clever idea, but I don't think I would try it without a lot of testing on a server farm. 

Reply | Email | Modify 
How to create Chatting application in browser? by sagar On February 1, 2011
Thanks for uploading such nice tutorials. I want to know how to create Chatting application in browser? using simple asp.net concept without using socket & remoting concept.Please replye as you possible.
Reply | Email | Modify 
Useful info for sharing data across network by Mayur On April 9, 2011
Hi, this is very nice article
Reply | Email | Modify 
Team Foundation Server Hosting
 © 2012  contents copyright of their authors. Rest everything copyright Mindcracker. All rights reserved.