Click here to Skip to main content
15,887,338 members
Articles / Web Development / ASP.NET
Tip/Trick

Pages.Items Property

Rate me:
Please Sign up or sign in to vote.
5.00/5 (1 vote)
11 Mar 2013CPOL2 min read 11.9K   4  
Passing data from page to another page using Page.Items Property

Introduction 

I did not find a suitable article describing how Page.Items can help to transfer data from Page to another page. Of course, state management like: query strings, session, Cache object, Application and others can help us to do that.

Background 

Page.Items Property

This property gets a list of objects stored in the page context, but we will use it here to persist data from one ASP.NET page to another page.

Objects added to the Items property are available throughout the lifetime of the page, so you can add objects to the Items property in events early in the page life-cycle and access those objects in later events.

Page.Items vs. ViewState

ViewState helps to save data at the page during multiple posts back of the same page. On the contrary, Page.Items is refreshed with each page post-back.

Using the Code

The example code scenario is a login page that saves the user name and uses Server.Transfer to transfer it to another page, where it can be retrieved from the context of the previous page. Of course the value will be lost upon the first post back of the page.

In page Login.aspx the Page.Items property saves the user name in its dictionary after the user enters his name "Omar", password "secret", and clicks the login button . 

/Login.aspx.cs 

 Image 1

Login.aspx  

Image 2

The next page, Default.aspx will use the context of the previous page to get the user name and display the it on the label. Therefore, you need to save the Page.Items value from the first page load in a session, view state or other preferred methodology. 

/Default.aspx.cs

 Image 3

You can use the button to cause a post-back and refresh the page, and you will notice that an exception will be thrown.

/Default.aspx

 Image 4

Resources

  • MSDN library
  • Practical experience

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer (Junior)
Jordan Jordan
Omar Adnan Isaid Junior developer interested to learn more about web development and meet experts in this field aims to add something unique to IT field.
http://omarpost.blogspot.com/

Comments and Discussions

 
-- There are no messages in this forum --