The text of this article is not in this database — only its details are. Read it on the old site: GridView Sorting, Paging without using Session, ViewState or Cache
8 Comments
Join the conversation! Your thoughts help the community grow.
Sign in to leave a comment.

Mayur GujrathiPosted Apr 9, 2011, 2:34 AM
Hi, this is very nice article
sagar BhosalePosted Feb 1, 2011, 12:52 AM
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.
Andrew FensterPosted Oct 25, 2010, 11:16 AM
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.
Andrew FensterPosted Oct 25, 2010, 8:37 AM
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.
Suthish NairPosted Sep 17, 2010, 3:15 PM
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.
Felipe RamosPosted Sep 16, 2010, 11:47 AM
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.
Meyyappan MeyyappanPosted Sep 14, 2010, 1:40 PM
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