Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 CS 3870/CS 5870 Note04 Session Variables and Post Back.

Similar presentations


Presentation on theme: "1 CS 3870/CS 5870 Note04 Session Variables and Post Back."— Presentation transcript:

1 1 CS 3870/CS 5870 Note04 Session Variables and Post Back

2 Static Pages and Dynamic Pages Original HTML –Universal Reader –No User input Smart HTML –Input controls –User interactive pages 2

3 3 ASP.NET Server Controls HTML Server Controls –HTML server controls are HTML tags understood by the server Web Server Controls –Web server controls are special ASP.NET tags understood by the server. –According to the browser type and version, Web server controls can be mapped to HTML elements in different ways We should use Web Server Controls Standard on ToolBox

4 Windows Programs Web applications are different from Windows programs Developers’ Code –Sub Main –EXE file –Class variables to maintain state information –Example: employee displayed on IndividualForm of Prog6 of CS3340 4

5 Web Applications IIS running as interface ASP.NET running to generate dynamic pages Developers’ code –No Sub Main –Classes are in DLL files –Objects are created and removed by ASP.NET (too many objects to store in memory) –Class variables cannot keep state information 5

6 Session Variables To maintain state information for each user on each Web site Maintained by ASP.NET Not by developers’ code Defined inside Global.asax 6

7 Session State ASP.NET session state enables you to store and retrieve values for a user as the user navigates ASP.NET pages in a Web application. HTTP is a stateless protocol. This means that a Web server treats each HTTP request for a page as an independent request. The server retains no knowledge of variable values that were used during previous requests. ASP.NET session state identifies requests from the same browser during a limited time window as a session, and provides a way to persist variable values for the duration of that session. By default, ASP.NET session state is enabled for all ASP.NET applications. 7

8 What is a Session? Running a Windows program –The time period between starting a program and terminating the program Session of Web Sites –Session start: the first visit to any page of the site –Session end: no way to know if the user is still there or not –Session Time Out 8

9 Session Time Out Length of a session –Default value: 30 mins –Set in Web.config file –Discussed later Session variables are initialized when session starts and updated in event procedures Session variables could be cleared at session end 9

10 10 Creating Global.asax Must be inside the Web site main folder, not under any sub-folder Only one global file each Web site Right click Solution or Project Add Add New Global Application Class

11 11 Global.asax Application_Start Application_End Application_Error Session_Start Session_End

12 Prog2 All Session Variables Begin with Prog2_ 6 Session variables String –Prog2_ID –Prog2_Price –Prog2_Quantity –Prog2_SubTotal –Prog2_Tax –Prog2_GrandTotal 12 4 Session variables String –Prog2_ID –Prog2_Price –Prog2_Quantity Boolean –Prog2_Computed

13 Initialize Session Variables Sub Application_Start(...) End Sub Sub Application_End(...) End Sub Sub Application_Error(...) End Sub Sub Session_Start(...) Session("Prog2_ProductID") = "" Session("Prog2_ProductIPrice") = "" Session("Prog2_ProductQuantity") = "" Session("Prog2_Computed") = False End Sub Sub Session_End(...) End Sub 13

14 Session Variables Don’t need to be declared We need to remember the type of session variables Initialized at the session start –Inside file Global.asax Accessed and updated inside event procedures Restored in Page Load event procedure 14

15 Prog2 After a calculation is completed successfully, if the user goes to the start page then comes back to page OrderingProduct.aspx, then all textboxes should show the same data as when the user left the page. All textboxes will be blank if the previous calculation is failed. 15

16 Update and Restore Session Variables Protected Sub Button1_Click(…) Handles Button1.Click ‘ Computing result... ‘ Store state information Session("Lab2_ProductID") = txtID.Text Session("Lab2_ProductIPrice") = txtPrice.Text End Sub Protected Sub Page_Load(…) Handles Me.Load txtID.Text = Session("Lab2_ProductID") txtPrice.Text = Session("Lab2_ProductIPrice") End Sub 16

17 User Input Will Be Lost! ‘ For each request, the event procedure will be invoked ‘ and we never get the user input. Protected Sub Page_Load(…) Handles Me.Load txtID.Text = Session("Lab2_ProductID") txtPrice.Text = Session("Lab2_ProductIPrice") End Sub 17

18 Visiting Dynamic Pages First Visit (can use the initial value of session variables) Return Visit from other pages (need to restore the value of session variables) Post Back (keep user input) (Call Back) (Cross Post Back) 18

19 Post Back User Interaction –Clicking on a button –... User Input Event Procedures New version of the same page generated 19

20 Page.IsPostBack Property Click HereHere 20

21 Generating Dynamic Pages First Visit –No user input Return Visit from other pages –No user input –May need to restore Session Data (Prog2) Post Back –Event procedures with user input –May access and/or update Session Data 21

22 Page Load Event Procedure If Not IsPostBack Then ‘ first or return visits ‘ restore Session data Else ‘ Let event procedures ‘ handle the user input End If 22

23 Page Load Event Procedure If Not IsPostBack Then ‘ first or return visits ‘ restore Session data Else is not needed! ‘ Else is not needed! End If 23

24 Update and Restore Session Variables Protected Sub Button1_Click(…) Handles Button1.Click ‘ Computing result... Session("Lab2_ProductID") = txtID.Text Session("Lab2_ProductIPrice") = txtPrice.Text End Sub Protected Sub Page_Load(…) Handles Me.Load If Not IsPostBack Then txtID.Text = Session("Lab2_ProductID") txtPrice.Text = Session("Lab2_ProductIPrice") End If End Sub 24

25 Button Reset The reset button make it easier CauseValidation: False! Reset session variables 25

26 26 Web Configuration File Creating Web.config file –Right click the web site –Add new item –Web Configuration file Many settings Different levels –Machine –Site –Folder

27 Web.config 27

28 Web.config 28

29 Session TimeOut Configure file Web.config Short timeout values make development easier Longer timeout values for production Web sites 29

30 Web.config 30

31 Web.config <compilation debug="true" targetFramework="4.5" urlLinePragmas="true“ /> 31

32 Compiling Web Pages All code files are precompiled into a single assembly (dll file). Web pages are compiled at the first request Dynamic compilation causes some delay for the first visit 32

33 Page Directives <%@ Page Language="VB" AutoEventWireup="false" CodeFile="OrderingProduct.aspx.vb" Inherits="Prog2_OrderingProduct" %> AutoEventWireup True: No “handles” for page event procedures (ASP.NET uses procedure name and signature) False: page event procedures must have “handles” Only for page events, not control events 33

34 Style Display z-index Width: 15% Padding-left: 10% 34

35 35 <asp:TextBox ID="txtID" runat="server" style=“position: relative; margin-left: 17.5%; width: 15%; display: inline-block" BorderStyle="Solid" AutoPostBack="false" TabIndex="0"> <asp:TextBox ID="txtPrice" runat="server" style="position: relative; margin-left:10%; width: 15%; display: inline-block; text-align:right" BorderStyle="Solid" AutoPostBack="false" tabindex="1">

36 36 Prog2 You lose five points for each late day! Even the server is having issues!


Download ppt "1 CS 3870/CS 5870 Note04 Session Variables and Post Back."

Similar presentations


Ads by Google