SlideShare a Scribd company logo
1 of 84
Introduction to ASP.NET
     and Web Forms
S511 Module Structure
                     S511 Technologies for E-business


    Prelims                                    .Net framework         Web Services
      M1                                                                   M8
     Basics              XML                           M5
                                                                         XML WS
                                                      .Net
                          M2
                         XML
                                        Mid-term
                                                      Database Services
                  M3            M4
                                                                                          Project
                 XML-2         XSLT                      M6      M7
                                                       ADO .Net Query


Intro. Prog.   Data management (core)              Object-oriented Programming

                                                                          Slide 2 of 72
Learning Objectives
 What is ASP.NET; why it was developed
 ASP.NET features
 Programming Web Forms




                                          Slide 3 of 72
Agenda
   Background
   ASP.NET Overview
   Programming Model
   Programming Basics
   Server Controls
   Data Binding
   Conclusion


                             Slide 4 of 72
Background
                        Web Architecture

                                                  PC/Mac/Unix/...
  Client
                                                     + Browser

                         Request:
http://www.digimon.com/default.asp



  Network                                              HTTP, TCP/IP



                                     Response:
                                     <html>….</html>

   Server                                              Web Server



                                                              Slide 5 of 72
Background
         Web Development Technologies

 Client-side technologies
     HTML, DHTML, JavaScript
 Server-side technologies
     ASP (Active Server Pages)
 ASP.NET is the next generation of ASP




                                          Slide 6 of 72
Background
                  What is ASP?

 Server-side programming technology
 Consists of static HTML interspersed with script
 ASP intrinsic objects (Request, Response,
  Server, Application, Session) provide services
 Commonly uses ADO to interact with databases
 Application and session variables
 Application and session begin/end events
 ASP manages threads, database connections, ...

                                          Slide 7 of 72
Background
                    What is ASP?


 HTTP request               HTTP response
(form data, HTTP            HTML, XML
     header data)




                             ASP page
                             (static HTML,
                              server-side logic)




                                                   Slide 8 of 72
Background
             Demo: HelloWorld.asp

<html>
<head><title>HelloWorld.asp</title></head>
<body>
<form method=“post">
<input type="submit" id=button1 name=button1
value="Push Me" />
<%
if (Request.Form("button1") <> "") then
   Response.Write("<p>Hello, the time is " & Now())
end if
%>
</form>
</body>
</html>

                                             Slide 9 of 72
Background
                     ASP Successes

 Simple procedural programming model
 Access to COM components
     ActiveX Data Objects (ADO)
     File System Object
     Custom components
 Script-based: no compiling, just edit, save & run
     VBScript, JScript – leverages existing skills
 Support for multiple scripting languages
 ASP has been very popular
                                                      Slide 10 of 72
Background
                          ASP Challenges
 Coding overhead (too much code)
       Everything requires writing code!
   Code readability (too complex; code and UI intermingled)
   Maintaining page state requires more code
   Reuse is difficult
   Supporting many types of browsers is difficult
   Deployment issues (e.g. DLL locking)
   Session state scalability and availability
   Limited support for caching, tracing, debugging, etc.
   Performance and safety limitations of script

                                                   Slide 11 of 72
Agenda
   Background
   ASP.NET Overview
   Programming Model
   Programming Basics
   Server Controls
   Data Binding
   Conclusion


                             Slide 12 of 72
ASP.NET Overview
 ASP.NET provides services to allow the
  creation, deployment, and execution of
  Web Applications and Web Services
 Like ASP, ASP.NET is a server-side technology
 Web Applications are built using Web Forms
 Web Forms are designed to make building
  web-based applications as easy as building
  Visual Basic applications


                                         Slide 13 of 72
ASP.NET Overview
                             Goals
   Keep the good parts of ASP and improve the rest
   Simplify: less code, easier to create and maintain
   Multiple, compiled languages
   Fast
   Scalable
   Manageable
   Available
   Customizable and extensible
   Secure
   Tool support
                                                     Slide 14 of 72
ASP.NET Overview
                      Key Features

   Web Forms                    Session management
   Web Services                 Caching
   Built on .NET Framework      Debugging
   Simple programming           Extensibility
    model                        Separation of code and UI
   Maintains page state         Security
   Multibrowser support         ASPX, ASP side by side
   XCOPY deployment             Simplified form validation
   XML configuration            Cookieless sessions
   Complete object model
                                                   Slide 15 of 72
ASP.NET Overview
              Demo: HelloWorld.aspx
<%@ Page Language="VB" %>
<html>
<head>
<script runat="server">
sub B_Click (sender as object, e as System.EventArgs )
  Label1.Text = "Hello, the time is " & DateTime.Now
end sub
</script>
</head>
<body>
  <form method="post" runat="server">
    <asp:Button onclick="B_Click" Text="Push Me"
       runat="server" /> <p>
    <asp:Label id=Label1 runat="server" />
  </form>
</body>
</html>
                                                  Slide 16 of 72
ASP.NET Overview
                        Architecture

 ASP.NET is built upon
     .NET Framework
     Internet Information Server (IIS)




                                          Slide 17 of 72
ASP.NET Overview
              Architecture

VB     C++    C#   JScript     …




                                    Visual Studio.NET
 Common Language Specification
ASP.NET: Web Services     Windows
   and Web Forms           Forms
      ADO.NET: Data and XML

           Base Classes

     Common Language Runtime


                                             Slide 18 of 72
Agenda
   Background
   ASP.NET Overview
   Programming Model
   Programming Basics
   Server Controls
   Data Binding
   Conclusion


                            Slide 19 of 72
Programming Model
                 Controls and Events

 Server-side programming model
 Based on controls and events
     Just like Visual Basic
     Not “data in, HTML out”
 Higher level of abstraction than ASP
 Requires less code
 More modular, readable, and maintainable



                                         Slide 20 of 72
Programming Model
                   Controls and Events



                                           Button code
Button                                          ...

                                            List code
List                                            ...

                                            Text code
Text                                            ...




       Browser                 ASP.NET   Event handlers


                                            Slide 21 of 72
Programming Model
              ASP.NET Object Model

 User code executes on the web server in
  page or control event handlers
 Controls are objects, available in
  server-side code
     Derived from System.Web.UI.Control
 The web page is an object too
     Derived from System.Web.UI.Page which is a
      descendant of System.Web.UI.Control
     A page can have methods, properties, etc.

                                             Slide 22 of 72
Programming Model
                     Postbacks

 A postback occurs when a page generates an
  HTML form whose values are posted back
  to the same page
 A common technique for handling form data
 In ASP and other server-side technologies the
  state of the page is lost upon postback...
 Unless you explicitly write code to maintain state
 This is tedious, bulky and error-prone


                                            Slide 23 of 72
Programming Model
           Postbacks Maintain State

 By default, ASP.NET maintains the state of all
  server-side controls during a postback
 Can use method="post" or method="get"
 Server-side control objects are automatically
  populated during postback
 No state stored on server
 Works with all browsers



                                           Slide 24 of 72
Programming Model
                Server-side Controls

 Multiple sources of controls
     Built-in
     3rd party
     User-defined
 Controls range in complexity and power: button,
  text, drop down, calendar, data grid, ad rotator,
  validation
 Can be populated via data binding


                                            Slide 25 of 72
Programming Model
        Automatic Browser Compatibility

 Controls can provide automatic browser
  compatibility
 Can target UpLevel or DownLevel browsers
     UpLevel browsers support additional functionality,
      such as JavaScript and DHTML
     DownLevel browsers support HTML 3.2




                                                  Slide 26 of 72
Programming Model
          Automatic Browser Compatibility
   IE 4
 Button

 Menu

 Text




Netscape              Button Control     Button code
 Button                                       ...
 Menu

 Text
                      Menu Control        Menu code
                                             ...
 IE 5.5
 Button
                       Text Control       Text code
 Menu

 Text
                                              ...


   IE 6
 Button

 Menu                  ASP.NET         Event handlers
 Text




  ...
                                             Slide 27 of 72
Programming Model
                     Code-behind pages

 Two styles of creating ASP.NET pages
     Controls and code in .aspx file
     Controls in .aspx file, code in code-behind page
         Supported in Visual Studio.NET
 Code-behind pages allow you to separate the
  user interface design from the code
     Allows programmers and designers to work
      independently
      <%@ Codebehind=“WebForm1.bas”
          Inherits=WebApplication1.WebForm1” %>

                                                    Slide 28 of 72
Programming Model
                Automatic Compilation

 Just edit the code and hit the page
 ASP.NET will automatically compile the code
  into an assembly
 Compiled code is cached in the CLR
  Assembly Cache
 Subsequent page hits use compiled assembly
 If the text of the page changes then the code
  is recompiled
     Works just like ASP: edit, save and run

                                                Slide 29 of 72
Programming Model
 Automatic Compilation




                         Slide 30 of 72
Agenda
   Background
   ASP.NET Overview
   Programming Model
   Programming Basics
   Server Controls
   Data Binding
   Conclusion


                            Slide 31 of 72
Programming Basics
                           Page Syntax
 The most basic page is just static text
     Any HTML page can be renamed .aspx
 Pages may contain:
     Directives: <%@ Page Language=“VB” %>
     Server controls: <asp:Button runat=“server”>
     Code blocks: <script runat=“server”>…</script>
     Data bind expressions: <%# %>
     Server side comments: <%-- --%>
     Render code: <%= %> and <% %>
         Use is discouraged; use <script runat=server> with code in
          event handlers instead


                                                            Slide 32 of 72
Programming Basics
                     The Page Directive
 Lets you specify page-specific attributes, e.g.
      AspCompat: Compatibility with ASP
      Buffer: Controls page output buffering
      CodePage: Code page for this .aspx page
      ContentType: MIME type of the response
      ErrorPage: URL if unhandled error occurs
      Inherits: Base class of Page object
      Language: Programming language
      Trace: Enables tracing for this page
      Transaction: COM+ transaction setting
 Only one page directive per .aspx file

                                                    Slide 33 of 72
Programming Basics
                  Server Control Syntax

 Controls are declared as HTML tags with
  runat=“server” attribute
       <input type=text id=text2 runat=“server” />
       <asp:calendar id=myCal runat=“server” />

 Tag identifies which type of control to create
       Control is implemented as an ASP.NET class
 The id attribute provides programmatic identifier
       It names the instance available during postback
       Just like Dynamic HTML

                                                     Slide 34 of 72
Programming Basics
           Server Control Properties
 Tag attributes map to control properties
   <asp:button id=“c1" Text="Foo" runat=“server”>
   <asp:ListBox id=“c2" Rows="5" runat=“server”>

 Tags and attributes are case-insensitive
 Control properties can be set programmatically

               c1.Text = “Foo”
               c2.Rows = 5




                                             Slide 35 of 72
Programming Basics
                    Maintaining State
 By default. controls maintain their state across
  multiple postback requests
      Implemented using a hidden HTML field:
       __VIEWSTATE
      Works for controls with input data (e.g. TextBox,
       CheckBox), non-input controls (e.g. Label,
       DataGrid), and hybrids (e.g. DropDownList,
       ListBox)
 Can be disabled per control or entire page
      Set EnableViewState=“false”
      Lets you minimize size of __VIEWSTATE

                                                    Slide 36 of 72
Programming Basics
               Maintaining State

 Demo: MaintainingState.asp,
  MaintainingState.aspx




                                   Slide 37 of 72
Programming Basics
                 Server Code Blocks

 Server code lives in a script block marked
  runat=“server”
      <script language="C#" runat=server>
      <script language="VB" runat=server>
      <script language="JScript" runat=server>


 Script blocks can contain
     Variables, methods, event handlers, properties
     They become members of a custom Page object


                                                Slide 38 of 72
Programming Basics
                       Page Events

 Pages are structured using events
     Enables clean code organization
     Avoids the “Monster IF” statement
     Less complex than ASP pages
 Code can respond to page events
     e.g. Page_Load, Page_Unload
 Code can respond to control events
     Button1_Click
     Textbox1_Changed

                                          Slide 39 of 72
Programming Basics
                     Page Event Lifecycle

Initialize                       Page_Init
Restore Control State
Load Page                        Page_Load

Control Events
  1. Change Events            Textbox1_Changed

  2. Action Events             Button1_Click

Save Control State
Render
Unload Page                     Page_Unload


                                                 Slide 40 of 72
Programming Basics
                      Page Loading

 Page_Load fires at beginning of request after
  controls are initialized
     Input control values already populated


 protected sub Page_Load(s as Object, e as
 EventArgs)
   message.Text = "Howdy, World!"
 End sub




                                               Slide 41 of 72
Programming Basics
                       Page Loading

 Page_Load fires on every request
      Use Page.IsPostBack to execute conditional logic
      If a Page/Control is maintaining state then need only
       initialize it when IsPostBack is false

protected sub Page_Load(s as Object, e as EventArgs)

  if (Page.IsPostBack) then
  else
    ' Executes only on initial page load
    Message.Text = "initial value"
  ' Rest of procedure executes on every request
end sub
                                                    Slide 42 of 72
Programming Basics
                 Server Control Events
 Change Events
     By default, these execute only on next action event
     E.g. OnTextChanged, OnCheckedChanged
     Change events fire in random order
 Action Events
     Cause an immediate postback to server
     E.g. OnClick
 Works with any browser
     No client script required, no applets,
      no ActiveX® Controls!

                                                   Slide 43 of 72
Programming Basics
            Wiring Up Control Events
 Control event handlers are identified on the tag
<asp:button onclick="btn1_click“ runat=server>
<asp:textbox onchanged="text1_changed“ runat=server>

 Event handler code
protected sub btn1_Click(s as Object, e as EventArgs)
  Message.Text = “Button1 clicked”
end sub




                                             Slide 44 of 72
Programming Basics
                      Event Arguments

 Events pass two arguments:
     The sender, declared as type object
       Usually the object representing the control that generated
        the event
       Allows you to use the same event handler for

        multiple controls
     Arguments, declared as type EventArgs
       Provides additional data specific to the event
       EventArgs itself contains no data; a class derived from

        EventArgs will be passed



                                                            Slide 45 of 72
Programming Basics
                      Page Unloading

 Page_Unload fires after the page is rendered
      Don’t try to add to output
 Useful for logging and clean up


protected sub Page_Unload(s as Object, e as
EventArgs)
  MyApp.LogPageComplete()
end sub




                                              Slide 46 of 72
Programming Basics
                    Import Directive

 Adds code namespace reference to page
     Avoids having to fully qualify .NET types and
      class names
     Equivalent to the VB imports directive


        <%@ Import Namespace="System.Data" %>
        <%@ Import Namespace="System.Net" %>
        <%@ Import Namespace="System.IO" %>




                                                      Slide 47 of 72
Programming Basics
                     Page Class
 The Page object is always available when
  handling server-side events
 Provides a large set of useful properties and
  methods, including:
     Application, Cache, Controls,
      EnableViewState, EnableViewStateMac,
      ErrorPage, IsPostBack, IsValid, Request,
      Response, Server, Session, Trace, User,
      Validators
     DataBind(), LoadControl(), MapPath(),
      Validate()

                                            Slide 48 of 72
Agenda
   Background
   ASP.NET Overview
   Programming Model
   Programming Basics
   Server Controls
   Data Binding
   Conclusion


                             Slide 49 of 72
Server Controls
 ASP.NET ships with ~50 built-in controls
 Organized into logical families
     HTML controls
         Controls / properties map 1:1 with HTML
     Web controls
       Richer functionality
       More consistent object model




                                                    Slide 50 of 72
Server Controls
                  HTML Controls

 Work well with existing HTML designers
 Properties map 1:1 with HTML
     table.bgcolor ="red"

 Can specify client-side event handlers
 Good when quickly converting existing pages
 Derived from
  System.Web.UI.HtmlControls.HtmlControl
 Supported controls have custom class,
  others derive from HtmlGenericControl
                                           Slide 51 of 72
Server Controls
                   HTML Controls

 Supported controls
     <a>
                          <textarea>
     <img>
                          <button>
     <form>
                          <input type=text>
     <table>
                          <input type=file>
     <tr>
                          <input type=submit>
     <td>
                          <input type=button>
     <th>
                          <input type=reset>
     <select>
                          <input type=hidden>



                                         Slide 52 of 72
Server Controls
                     HTML Controls

 Demo 1: HTMLControls1.aspx
     Basic page lifecycle with HTML Controls
 Demo 2: HTMLControls2.aspx
     More HTML Controls




                                                Slide 53 of 72
Server Controls
                          HTML Controls

 Can use controls two ways:
     Handle everything in action events (e.g. button click)
         Event code will read the values of other controls (e.g. text,
          check boxes, radio buttons, select lists)
     Handle change events as well as action events




                                                                Slide 54 of 72
Server Controls
                        Web Controls

 Consistent object model
           Label1.BackColor = Color.Red
           Table.BackColor = Color.Blue

 Richer functionality
      E.g. AutoPostBack, additional methods
 Automatic uplevel/downlevel support
      E.g. validation controls
 Strongly-typed; no generic control
      Enables better compiler type checking

                                               Slide 55 of 72
Server Controls
                   Web Controls

 Web controls appear in HTML markup as
  namespaced tags
 Web controls have an asp: prefix
<asp:button onclick="button1_click“ runat=server>
<asp:textbox onchanged="text1_changed“ runat=server>

 Defined in the System.Web.UI.WebControls
  namespace
 This namespace is automatically mapped to the
  asp: prefix
                                             Slide 56 of 72
Server Controls
                   Web Controls

 Web Controls provide extensive properties to
  control display and format, e.g.
     Font
     BackColor, ForeColor
     BorderColor, BorderStyle, BorderWidth
     Style, CssClass
     Height, Width
     Visible, Enabled



                                          Slide 57 of 72
Server Controls
                       Web Controls

 Four types of Web Controls
     Intrinsic controls
     List controls
     Rich controls
     Validation controls




                                      Slide 58 of 72
Server Controls
                Intrinisic Controls

 Correspond to HTML controls
 Supported controls
     <asp:button>           <asp:radiobutton>
     <asp:imagebutton>      <asp:image>
     <asp:linkbutton>       <asp:label>
     <asp:hyperlink>        <asp:panel>
     <asp:textbox>          <asp:table>
     <asp:checkbox>



                                          Slide 59 of 72
Server Controls
               Intrinisic Controls

 TextBox, ListControl, CheckBox and their
  subclasses don’t automatically do a postback
  when their controls are changed
 Specify AutoPostBack=true to make change
  events cause a postback




                                        Slide 60 of 72
Server Controls
                   List Controls

 Controls that handle repetition
 Supported controls
        <asp:dropdownlist>
        <asp:listbox>
        <asp:radiobuttonlist>
        <asp:checkboxlist>
        <asp:repeater>
        <asp:datalist>
        <asp:datagrid>

                                    Slide 61 of 72
Server Controls
                      List Controls

 Repeater, DataList and DataGrid controls
     Powerful, customizable list controls
     Expose templates for customization
     Can contain other controls
     Provide event bubbling through their
      OnItemCommand event
     More about these controls and templates later




                                                  Slide 62 of 72
Server Controls
    CheckBoxList & RadioButtonList

 Provides a collection of check box or
  radio button controls
 Can be populated via data binding
   <asp:CheckBoxList id=Check1 runat="server">
     <asp:ListItem>Item 1</asp:ListItem>
     <asp:ListItem>Item 2</asp:ListItem>
     <asp:ListItem>Item 3</asp:ListItem>
     <asp:ListItem>Item 4</asp:ListItem>
     <asp:ListItem>Item 5</asp:ListItem>
   </asp:CheckBoxList>



                                            Slide 63 of 72
Server Controls
         Intrinisic & Simple List Controls

 Demo 1: WebControls1.aspx
     Assorted intrinsic and list controls
 Demo 2: WebControls2.aspx
     Same controls with AutoPostBack




                                             Slide 64 of 72
Server Controls
                   Rich Controls

 Custom controls with rich functionality
 Supported Controls
     <asp:calendar>
     <asp:adrotator>
 More will be added
 3rd party controls are coming
 Demo: RichControls1.aspx



                                            Slide 65 of 72
Server Controls
                     Validation Controls

   Rich, declarative validation
   Validation declared separately from input control
   Extensible validation framework
   Supports validation on client and server
       Automatically detects uplevel clients
       Avoids roundtrips for uplevel clients
 Server-side validation is always done
       Prevents users from spoofing Web Forms


                                                 Slide 66 of 72
Server Controls
                      Validation Controls
 <asp:RequiredFieldValidator>
     Ensures that a value is entered
 <asp:RangeValidator>
     Checks if value is within minimum and maximum values
 <asp:CompareValidator>
     Compares value against constant, another control or data type
 <asp:RegularExpressionValidator>
     Tests if value matches a predefined pattern
 <asp:CustomValidator>
     Lets you create custom client- or server-side validation function
 <asp:ValidationSummary>
     Displays list of validation errors in one place
                                                              Slide 67 of 72
Server Controls
                Validation Controls

 Validation controls are derived from
  System.Web.UI.WebControls.BaseValidator,
  which is derived from the Label control
 Validation controls contain text which is displayed
  only if validation fails
 Text property is displayed at control location
 ErrorMessage is displayed in summary



                                            Slide 68 of 72
Server Controls
                Validation Controls
 Validation controls are associated with their
  target control using the ControlToValidate
  property

     <asp:TextBox id=TextBox1 runat=server />

     <asp:RequiredFieldValidator id="Req1"

       ControlToValidate="TextBox1"
       Text="Required Field" runat=server />

 Can create multiple validation controls with the
  same target control
                                               Slide 69 of 72
Server Controls
               Validation Controls

 Page.IsValid indicates if all validation
  controls on the page succeed

    void Submit_click(s as object, e as EventArgs)
      if (Page.IsValid) then
        Message.Text = "Page is valid!"
      end if
    end sub




                                             Slide 70 of 72
Server Controls
                  Validation Controls

 Display property controls layout
     Static: fixed layout, display won’t change if invalid
     Dynamic: dynamic layout
     None: no display; can still use ValidationSummary
      and Page.IsValid
 Type property specifies expected data type:
  Currency, Date, Double, Integer, String




                                                   Slide 71 of 72
Server Controls
                  Validation Controls

 Can force down-level option
     Only server-side validation

       <% @ Page Language="c#"
                 ClientTarget="DownLevel" %>




                                               Slide 72 of 72
Server Controls
                  Validation Controls

 Demo: ValidationControls1.aspx
     Demonstrates each type of validation control




                                                     Slide 73 of 72
Agenda
   Background
   ASP.NET Overview
   Programming Model
   Programming Basics
   Server Controls
   Data Binding
   Conclusion


                             Slide 74 of 72
Data Binding
         How to Populate Server Controls?

 Specify the data in the control’s tags
      Not dynamic: can’t get data from a database
 Write code that uses the control’s object model
      This is okay if you need to populate a simple value or
       list, but quickly gets too complicated for populating
       sophisticated displays
 Data binding
      Create an object that holds the data
       (DataSet, Array, string, int, etc.)
      Associate that object with the control
                                                     Slide 75 of 72
Data Binding
                        What Is It?
 Provides a single simple yet powerful way to
  populate Web Form controls with data
     Enables clean separation of code from UI
 Supports binding to any data source
     Properties, expressions, method calls
     Collections (Array, Hashtable, etc.)
     DataSet, DataTable, DataView, DataReader
     XML
 One way snapshot model
     Requires code to reapply to data model
                                                 Slide 76 of 72
Data Binding
                        What Is It?

 Allows you to specify an expression
 When the DataBind method of the control is
  called, the expression is evaluated and bound
     DataBind for a single control (and subcontrols)
     Page.DataBind binds all controls on a page
 Works for scalars, e.g. Label control
 Works for lists, e.g. DropDown control,
  ListBox control, etc.
 Enables the use of templates

                                                  Slide 77 of 72
Data Binding
                 Scalar Expressions

 Data binding expression: <%# expression %>
 Expression is evaluated when DataBind()
  is called
<asp:Label id=label1
  Text=<%# “The result is “ & (1 + 2) &
    “, the time is “ & DateTime.Now.ToLongTimeString() %>
  runat="server" />

public sub Page_Load(s as object, e as EventArgs)
  if (Page.IsPostBack) then
  else
    Page.DataBind()
  end if
end sub
                                                    Slide 78 of 72
Data Binding
                  Scalar Expressions

 Demo: DataBinding1.aspx
     Data binding to simple, scalar expressions




                                                   Slide 79 of 72
Data Binding
                             Simple Lists
 Data binding a list creates a user interface
  element for each item in the list
 Each item contains text (displayed to user) and
  an optional value (not displayed)
 The simple list controls:
     <asp:ListBox>
         Single or multiple select
     <asp:DropDownList>
     <asp:RadioButtonList>
     <asp:CheckBoxList>

                                            Slide 80 of 72
Data Binding
                      Simple Lists

 Steps to data bind a list control
      Declare the list control
      Optionally set DataValueField
       and DataTextField
      Set its DataSource
      Call DataBind() method




                                       Slide 81 of 72
Data Binding
                        Simple Lists

 Demo: DataBinding2.aspx
     Data binding to simple lists




                                       Slide 82 of 72
Resources
 General Sites
      http://msdn.microsoft.com/net/aspnet/default.asp
      http://www.asp.net/
      http://www.fmexpense.com/quickstart/aspplus/defa
       ult.htm
      http://www.asptoday.com/
      http://www.aspng.com/aspng/index.aspx
      http://www.4guysfromrolla.com/
      http://www.aspfree.com/
      http://www.devx.com/dotnet/
      http://www.ibuyspy.com/



                                               Slide 83 of 72
Resources
 ASP.NET Overview
  http://msdn.microsoft.com/msdnmag/issues/0900/ASPPlus/AS
  PPlus.asp
 Validation
  http://msdn.microsoft.com/library/techart/aspplusvalid.h
  tm
 Databinding in 3 parts
  http://msdn.microsoft.com/msdnmag/issues/01/03/cutting/c
  utting0103.asp
  http://msdn.microsoft.com/msdnmag/issues/01/04/cutting/c
  utting0104.asp
  http://msdn.microsoft.com/msdnmag/issues/01/05/cutting/c
  utting0105.asp
 ASP.NET component model
  http://msdn.microsoft.com/msdnmag/issues/01/02/cutting/c
  utting0102.asp


                                                 Slide 84 of 72

More Related Content

What's hot (20)

jQuery for beginners
jQuery for beginnersjQuery for beginners
jQuery for beginners
 
Java Servlets
Java ServletsJava Servlets
Java Servlets
 
Java Server Pages(jsp)
Java Server Pages(jsp)Java Server Pages(jsp)
Java Server Pages(jsp)
 
Php Presentation
Php PresentationPhp Presentation
Php Presentation
 
ASP.NET Web form
ASP.NET Web formASP.NET Web form
ASP.NET Web form
 
ASP.NET Basics
ASP.NET Basics ASP.NET Basics
ASP.NET Basics
 
HTML Forms
HTML FormsHTML Forms
HTML Forms
 
An Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java ScriptAn Overview of HTML, CSS & Java Script
An Overview of HTML, CSS & Java Script
 
Server Controls of ASP.Net
Server Controls of ASP.NetServer Controls of ASP.Net
Server Controls of ASP.Net
 
Angularjs PPT
Angularjs PPTAngularjs PPT
Angularjs PPT
 
Android User Interface
Android User InterfaceAndroid User Interface
Android User Interface
 
Javascript
JavascriptJavascript
Javascript
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Html5 tutorial for beginners
Html5 tutorial for beginnersHtml5 tutorial for beginners
Html5 tutorial for beginners
 
Php.ppt
Php.pptPhp.ppt
Php.ppt
 
Mvc architecture
Mvc architectureMvc architecture
Mvc architecture
 
Introduction To Dotnet
Introduction To DotnetIntroduction To Dotnet
Introduction To Dotnet
 
Introduction to Angularjs
Introduction to AngularjsIntroduction to Angularjs
Introduction to Angularjs
 
Introduction to php
Introduction to phpIntroduction to php
Introduction to php
 
android layouts
android layoutsandroid layouts
android layouts
 

Similar to Asp.net.

HTTP and Website Architecture and Middleware
HTTP and Website Architecture and MiddlewareHTTP and Website Architecture and Middleware
HTTP and Website Architecture and MiddlewareAbdul Jalil Tamjid
 
Joe Staner Zend Con 2008
Joe Staner Zend Con 2008Joe Staner Zend Con 2008
Joe Staner Zend Con 2008ZendCon
 
Asp.net architecture
Asp.net architectureAsp.net architecture
Asp.net architectureIblesoft
 
Asp.net presentation by gajanand bohra
Asp.net presentation by gajanand bohraAsp.net presentation by gajanand bohra
Asp.net presentation by gajanand bohraGajanand Bohra
 
Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologiesHosam Kamel
 
Developing an aspnet web application
Developing an aspnet web applicationDeveloping an aspnet web application
Developing an aspnet web applicationRahul Bansal
 
Partying with PHP (…and the Microsoft Platform)
Partying with PHP (…and the Microsoft Platform)Partying with PHP (…and the Microsoft Platform)
Partying with PHP (…and the Microsoft Platform)goodfriday
 
Asp dot net final (1)
Asp dot net   final (1)Asp dot net   final (1)
Asp dot net final (1)amelinaahmeti
 
Asp dot net final (1)
Asp dot net   final (1)Asp dot net   final (1)
Asp dot net final (1)amelinaahmeti
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetAdil Mughal
 

Similar to Asp.net. (20)

Asp.net basic
Asp.net basicAsp.net basic
Asp.net basic
 
HTTP and Website Architecture and Middleware
HTTP and Website Architecture and MiddlewareHTTP and Website Architecture and Middleware
HTTP and Website Architecture and Middleware
 
Visual studio.net
Visual studio.netVisual studio.net
Visual studio.net
 
Asp.net
Asp.netAsp.net
Asp.net
 
ASP
ASPASP
ASP
 
Joe Staner Zend Con 2008
Joe Staner Zend Con 2008Joe Staner Zend Con 2008
Joe Staner Zend Con 2008
 
Asp.net architecture
Asp.net architectureAsp.net architecture
Asp.net architecture
 
Asp.net presentation by gajanand bohra
Asp.net presentation by gajanand bohraAsp.net presentation by gajanand bohra
Asp.net presentation by gajanand bohra
 
Web development concepts using microsoft technologies
Web development concepts using microsoft technologiesWeb development concepts using microsoft technologies
Web development concepts using microsoft technologies
 
Asp dot net final (2)
Asp dot net   final (2)Asp dot net   final (2)
Asp dot net final (2)
 
Developing an aspnet web application
Developing an aspnet web applicationDeveloping an aspnet web application
Developing an aspnet web application
 
Asp.netrole
Asp.netroleAsp.netrole
Asp.netrole
 
Partying with PHP (…and the Microsoft Platform)
Partying with PHP (…and the Microsoft Platform)Partying with PHP (…and the Microsoft Platform)
Partying with PHP (…and the Microsoft Platform)
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
As Pdotnet
As PdotnetAs Pdotnet
As Pdotnet
 
Asp dot net final (1)
Asp dot net   final (1)Asp dot net   final (1)
Asp dot net final (1)
 
Asp dot net final (1)
Asp dot net   final (1)Asp dot net   final (1)
Asp dot net final (1)
 
Asp dot net final (1)
Asp dot net   final (1)Asp dot net   final (1)
Asp dot net final (1)
 
DevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp NetDevNext - Web Programming Concepts Using Asp Net
DevNext - Web Programming Concepts Using Asp Net
 
Visual studio.net
Visual studio.netVisual studio.net
Visual studio.net
 

More from Naveen Sihag

More from Naveen Sihag (20)

A P J Abdul Kalam
A P J Abdul KalamA P J Abdul Kalam
A P J Abdul Kalam
 
Rise to power adolf hitler
Rise to power adolf hitlerRise to power adolf hitler
Rise to power adolf hitler
 
Networking
NetworkingNetworking
Networking
 
Efective computing
Efective computingEfective computing
Efective computing
 
Bluetooth 1
Bluetooth 1Bluetooth 1
Bluetooth 1
 
Black holes
Black holesBlack holes
Black holes
 
Bluetooth 1
Bluetooth 1Bluetooth 1
Bluetooth 1
 
Black holes
Black holesBlack holes
Black holes
 
Visible light communication
Visible light communicationVisible light communication
Visible light communication
 
Variable frequency drives
Variable frequency drivesVariable frequency drives
Variable frequency drives
 
Usb
UsbUsb
Usb
 
Transducers
TransducersTransducers
Transducers
 
Touch screen technology
Touch screen technologyTouch screen technology
Touch screen technology
 
Solids and semiconductors
Solids and semiconductorsSolids and semiconductors
Solids and semiconductors
 
Sms &mms
Sms &mmsSms &mms
Sms &mms
 
Robotics and collision detection
Robotics and   collision detectionRobotics and   collision detection
Robotics and collision detection
 
Renewable energy
Renewable energyRenewable energy
Renewable energy
 
Red tacton
Red tactonRed tacton
Red tacton
 
Pulse code modulation
Pulse code modulationPulse code modulation
Pulse code modulation
 
Paper battery
Paper batteryPaper battery
Paper battery
 

Asp.net.

  • 1. Introduction to ASP.NET and Web Forms
  • 2. S511 Module Structure S511 Technologies for E-business Prelims .Net framework Web Services M1 M8 Basics XML M5 XML WS .Net M2 XML Mid-term Database Services M3 M4 Project XML-2 XSLT M6 M7 ADO .Net Query Intro. Prog. Data management (core) Object-oriented Programming Slide 2 of 72
  • 3. Learning Objectives  What is ASP.NET; why it was developed  ASP.NET features  Programming Web Forms Slide 3 of 72
  • 4. Agenda  Background  ASP.NET Overview  Programming Model  Programming Basics  Server Controls  Data Binding  Conclusion Slide 4 of 72
  • 5. Background Web Architecture PC/Mac/Unix/... Client + Browser Request: http://www.digimon.com/default.asp Network HTTP, TCP/IP Response: <html>….</html> Server Web Server Slide 5 of 72
  • 6. Background Web Development Technologies  Client-side technologies  HTML, DHTML, JavaScript  Server-side technologies  ASP (Active Server Pages)  ASP.NET is the next generation of ASP Slide 6 of 72
  • 7. Background What is ASP?  Server-side programming technology  Consists of static HTML interspersed with script  ASP intrinsic objects (Request, Response, Server, Application, Session) provide services  Commonly uses ADO to interact with databases  Application and session variables  Application and session begin/end events  ASP manages threads, database connections, ... Slide 7 of 72
  • 8. Background What is ASP? HTTP request HTTP response (form data, HTTP HTML, XML header data) ASP page (static HTML, server-side logic) Slide 8 of 72
  • 9. Background Demo: HelloWorld.asp <html> <head><title>HelloWorld.asp</title></head> <body> <form method=“post"> <input type="submit" id=button1 name=button1 value="Push Me" /> <% if (Request.Form("button1") <> "") then Response.Write("<p>Hello, the time is " & Now()) end if %> </form> </body> </html> Slide 9 of 72
  • 10. Background ASP Successes  Simple procedural programming model  Access to COM components  ActiveX Data Objects (ADO)  File System Object  Custom components  Script-based: no compiling, just edit, save & run  VBScript, JScript – leverages existing skills  Support for multiple scripting languages  ASP has been very popular Slide 10 of 72
  • 11. Background ASP Challenges  Coding overhead (too much code)  Everything requires writing code!  Code readability (too complex; code and UI intermingled)  Maintaining page state requires more code  Reuse is difficult  Supporting many types of browsers is difficult  Deployment issues (e.g. DLL locking)  Session state scalability and availability  Limited support for caching, tracing, debugging, etc.  Performance and safety limitations of script Slide 11 of 72
  • 12. Agenda  Background  ASP.NET Overview  Programming Model  Programming Basics  Server Controls  Data Binding  Conclusion Slide 12 of 72
  • 13. ASP.NET Overview  ASP.NET provides services to allow the creation, deployment, and execution of Web Applications and Web Services  Like ASP, ASP.NET is a server-side technology  Web Applications are built using Web Forms  Web Forms are designed to make building web-based applications as easy as building Visual Basic applications Slide 13 of 72
  • 14. ASP.NET Overview Goals  Keep the good parts of ASP and improve the rest  Simplify: less code, easier to create and maintain  Multiple, compiled languages  Fast  Scalable  Manageable  Available  Customizable and extensible  Secure  Tool support Slide 14 of 72
  • 15. ASP.NET Overview Key Features  Web Forms  Session management  Web Services  Caching  Built on .NET Framework  Debugging  Simple programming  Extensibility model  Separation of code and UI  Maintains page state  Security  Multibrowser support  ASPX, ASP side by side  XCOPY deployment  Simplified form validation  XML configuration  Cookieless sessions  Complete object model Slide 15 of 72
  • 16. ASP.NET Overview Demo: HelloWorld.aspx <%@ Page Language="VB" %> <html> <head> <script runat="server"> sub B_Click (sender as object, e as System.EventArgs ) Label1.Text = "Hello, the time is " & DateTime.Now end sub </script> </head> <body> <form method="post" runat="server"> <asp:Button onclick="B_Click" Text="Push Me" runat="server" /> <p> <asp:Label id=Label1 runat="server" /> </form> </body> </html> Slide 16 of 72
  • 17. ASP.NET Overview Architecture  ASP.NET is built upon  .NET Framework  Internet Information Server (IIS) Slide 17 of 72
  • 18. ASP.NET Overview Architecture VB C++ C# JScript … Visual Studio.NET Common Language Specification ASP.NET: Web Services Windows and Web Forms Forms ADO.NET: Data and XML Base Classes Common Language Runtime Slide 18 of 72
  • 19. Agenda  Background  ASP.NET Overview  Programming Model  Programming Basics  Server Controls  Data Binding  Conclusion Slide 19 of 72
  • 20. Programming Model Controls and Events  Server-side programming model  Based on controls and events  Just like Visual Basic  Not “data in, HTML out”  Higher level of abstraction than ASP  Requires less code  More modular, readable, and maintainable Slide 20 of 72
  • 21. Programming Model Controls and Events Button code Button ... List code List ... Text code Text ... Browser ASP.NET Event handlers Slide 21 of 72
  • 22. Programming Model ASP.NET Object Model  User code executes on the web server in page or control event handlers  Controls are objects, available in server-side code  Derived from System.Web.UI.Control  The web page is an object too  Derived from System.Web.UI.Page which is a descendant of System.Web.UI.Control  A page can have methods, properties, etc. Slide 22 of 72
  • 23. Programming Model Postbacks  A postback occurs when a page generates an HTML form whose values are posted back to the same page  A common technique for handling form data  In ASP and other server-side technologies the state of the page is lost upon postback...  Unless you explicitly write code to maintain state  This is tedious, bulky and error-prone Slide 23 of 72
  • 24. Programming Model Postbacks Maintain State  By default, ASP.NET maintains the state of all server-side controls during a postback  Can use method="post" or method="get"  Server-side control objects are automatically populated during postback  No state stored on server  Works with all browsers Slide 24 of 72
  • 25. Programming Model Server-side Controls  Multiple sources of controls  Built-in  3rd party  User-defined  Controls range in complexity and power: button, text, drop down, calendar, data grid, ad rotator, validation  Can be populated via data binding Slide 25 of 72
  • 26. Programming Model Automatic Browser Compatibility  Controls can provide automatic browser compatibility  Can target UpLevel or DownLevel browsers  UpLevel browsers support additional functionality, such as JavaScript and DHTML  DownLevel browsers support HTML 3.2 Slide 26 of 72
  • 27. Programming Model Automatic Browser Compatibility IE 4 Button Menu Text Netscape Button Control Button code Button ... Menu Text Menu Control Menu code ... IE 5.5 Button Text Control Text code Menu Text ... IE 6 Button Menu ASP.NET Event handlers Text ... Slide 27 of 72
  • 28. Programming Model Code-behind pages  Two styles of creating ASP.NET pages  Controls and code in .aspx file  Controls in .aspx file, code in code-behind page  Supported in Visual Studio.NET  Code-behind pages allow you to separate the user interface design from the code  Allows programmers and designers to work independently <%@ Codebehind=“WebForm1.bas” Inherits=WebApplication1.WebForm1” %> Slide 28 of 72
  • 29. Programming Model Automatic Compilation  Just edit the code and hit the page  ASP.NET will automatically compile the code into an assembly  Compiled code is cached in the CLR Assembly Cache  Subsequent page hits use compiled assembly  If the text of the page changes then the code is recompiled  Works just like ASP: edit, save and run Slide 29 of 72
  • 30. Programming Model Automatic Compilation Slide 30 of 72
  • 31. Agenda  Background  ASP.NET Overview  Programming Model  Programming Basics  Server Controls  Data Binding  Conclusion Slide 31 of 72
  • 32. Programming Basics Page Syntax  The most basic page is just static text  Any HTML page can be renamed .aspx  Pages may contain:  Directives: <%@ Page Language=“VB” %>  Server controls: <asp:Button runat=“server”>  Code blocks: <script runat=“server”>…</script>  Data bind expressions: <%# %>  Server side comments: <%-- --%>  Render code: <%= %> and <% %>  Use is discouraged; use <script runat=server> with code in event handlers instead Slide 32 of 72
  • 33. Programming Basics The Page Directive  Lets you specify page-specific attributes, e.g.  AspCompat: Compatibility with ASP  Buffer: Controls page output buffering  CodePage: Code page for this .aspx page  ContentType: MIME type of the response  ErrorPage: URL if unhandled error occurs  Inherits: Base class of Page object  Language: Programming language  Trace: Enables tracing for this page  Transaction: COM+ transaction setting  Only one page directive per .aspx file Slide 33 of 72
  • 34. Programming Basics Server Control Syntax  Controls are declared as HTML tags with runat=“server” attribute <input type=text id=text2 runat=“server” /> <asp:calendar id=myCal runat=“server” />  Tag identifies which type of control to create  Control is implemented as an ASP.NET class  The id attribute provides programmatic identifier  It names the instance available during postback  Just like Dynamic HTML Slide 34 of 72
  • 35. Programming Basics Server Control Properties  Tag attributes map to control properties <asp:button id=“c1" Text="Foo" runat=“server”> <asp:ListBox id=“c2" Rows="5" runat=“server”>  Tags and attributes are case-insensitive  Control properties can be set programmatically c1.Text = “Foo” c2.Rows = 5 Slide 35 of 72
  • 36. Programming Basics Maintaining State  By default. controls maintain their state across multiple postback requests  Implemented using a hidden HTML field: __VIEWSTATE  Works for controls with input data (e.g. TextBox, CheckBox), non-input controls (e.g. Label, DataGrid), and hybrids (e.g. DropDownList, ListBox)  Can be disabled per control or entire page  Set EnableViewState=“false”  Lets you minimize size of __VIEWSTATE Slide 36 of 72
  • 37. Programming Basics Maintaining State  Demo: MaintainingState.asp, MaintainingState.aspx Slide 37 of 72
  • 38. Programming Basics Server Code Blocks  Server code lives in a script block marked runat=“server” <script language="C#" runat=server> <script language="VB" runat=server> <script language="JScript" runat=server>  Script blocks can contain  Variables, methods, event handlers, properties  They become members of a custom Page object Slide 38 of 72
  • 39. Programming Basics Page Events  Pages are structured using events  Enables clean code organization  Avoids the “Monster IF” statement  Less complex than ASP pages  Code can respond to page events  e.g. Page_Load, Page_Unload  Code can respond to control events  Button1_Click  Textbox1_Changed Slide 39 of 72
  • 40. Programming Basics Page Event Lifecycle Initialize Page_Init Restore Control State Load Page Page_Load Control Events 1. Change Events Textbox1_Changed 2. Action Events Button1_Click Save Control State Render Unload Page Page_Unload Slide 40 of 72
  • 41. Programming Basics Page Loading  Page_Load fires at beginning of request after controls are initialized  Input control values already populated protected sub Page_Load(s as Object, e as EventArgs) message.Text = "Howdy, World!" End sub Slide 41 of 72
  • 42. Programming Basics Page Loading  Page_Load fires on every request  Use Page.IsPostBack to execute conditional logic  If a Page/Control is maintaining state then need only initialize it when IsPostBack is false protected sub Page_Load(s as Object, e as EventArgs) if (Page.IsPostBack) then else ' Executes only on initial page load Message.Text = "initial value" ' Rest of procedure executes on every request end sub Slide 42 of 72
  • 43. Programming Basics Server Control Events  Change Events  By default, these execute only on next action event  E.g. OnTextChanged, OnCheckedChanged  Change events fire in random order  Action Events  Cause an immediate postback to server  E.g. OnClick  Works with any browser  No client script required, no applets, no ActiveX® Controls! Slide 43 of 72
  • 44. Programming Basics Wiring Up Control Events  Control event handlers are identified on the tag <asp:button onclick="btn1_click“ runat=server> <asp:textbox onchanged="text1_changed“ runat=server>  Event handler code protected sub btn1_Click(s as Object, e as EventArgs) Message.Text = “Button1 clicked” end sub Slide 44 of 72
  • 45. Programming Basics Event Arguments  Events pass two arguments:  The sender, declared as type object  Usually the object representing the control that generated the event  Allows you to use the same event handler for multiple controls  Arguments, declared as type EventArgs  Provides additional data specific to the event  EventArgs itself contains no data; a class derived from EventArgs will be passed Slide 45 of 72
  • 46. Programming Basics Page Unloading  Page_Unload fires after the page is rendered  Don’t try to add to output  Useful for logging and clean up protected sub Page_Unload(s as Object, e as EventArgs) MyApp.LogPageComplete() end sub Slide 46 of 72
  • 47. Programming Basics Import Directive  Adds code namespace reference to page  Avoids having to fully qualify .NET types and class names  Equivalent to the VB imports directive <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Net" %> <%@ Import Namespace="System.IO" %> Slide 47 of 72
  • 48. Programming Basics Page Class  The Page object is always available when handling server-side events  Provides a large set of useful properties and methods, including:  Application, Cache, Controls, EnableViewState, EnableViewStateMac, ErrorPage, IsPostBack, IsValid, Request, Response, Server, Session, Trace, User, Validators  DataBind(), LoadControl(), MapPath(), Validate() Slide 48 of 72
  • 49. Agenda  Background  ASP.NET Overview  Programming Model  Programming Basics  Server Controls  Data Binding  Conclusion Slide 49 of 72
  • 50. Server Controls  ASP.NET ships with ~50 built-in controls  Organized into logical families  HTML controls  Controls / properties map 1:1 with HTML  Web controls  Richer functionality  More consistent object model Slide 50 of 72
  • 51. Server Controls HTML Controls  Work well with existing HTML designers  Properties map 1:1 with HTML table.bgcolor ="red"  Can specify client-side event handlers  Good when quickly converting existing pages  Derived from System.Web.UI.HtmlControls.HtmlControl  Supported controls have custom class, others derive from HtmlGenericControl Slide 51 of 72
  • 52. Server Controls HTML Controls  Supported controls  <a>  <textarea>  <img>  <button>  <form>  <input type=text>  <table>  <input type=file>  <tr>  <input type=submit>  <td>  <input type=button>  <th>  <input type=reset>  <select>  <input type=hidden> Slide 52 of 72
  • 53. Server Controls HTML Controls  Demo 1: HTMLControls1.aspx  Basic page lifecycle with HTML Controls  Demo 2: HTMLControls2.aspx  More HTML Controls Slide 53 of 72
  • 54. Server Controls HTML Controls  Can use controls two ways:  Handle everything in action events (e.g. button click)  Event code will read the values of other controls (e.g. text, check boxes, radio buttons, select lists)  Handle change events as well as action events Slide 54 of 72
  • 55. Server Controls Web Controls  Consistent object model Label1.BackColor = Color.Red Table.BackColor = Color.Blue  Richer functionality  E.g. AutoPostBack, additional methods  Automatic uplevel/downlevel support  E.g. validation controls  Strongly-typed; no generic control  Enables better compiler type checking Slide 55 of 72
  • 56. Server Controls Web Controls  Web controls appear in HTML markup as namespaced tags  Web controls have an asp: prefix <asp:button onclick="button1_click“ runat=server> <asp:textbox onchanged="text1_changed“ runat=server>  Defined in the System.Web.UI.WebControls namespace  This namespace is automatically mapped to the asp: prefix Slide 56 of 72
  • 57. Server Controls Web Controls  Web Controls provide extensive properties to control display and format, e.g.  Font  BackColor, ForeColor  BorderColor, BorderStyle, BorderWidth  Style, CssClass  Height, Width  Visible, Enabled Slide 57 of 72
  • 58. Server Controls Web Controls  Four types of Web Controls  Intrinsic controls  List controls  Rich controls  Validation controls Slide 58 of 72
  • 59. Server Controls Intrinisic Controls  Correspond to HTML controls  Supported controls  <asp:button>  <asp:radiobutton>  <asp:imagebutton>  <asp:image>  <asp:linkbutton>  <asp:label>  <asp:hyperlink>  <asp:panel>  <asp:textbox>  <asp:table>  <asp:checkbox> Slide 59 of 72
  • 60. Server Controls Intrinisic Controls  TextBox, ListControl, CheckBox and their subclasses don’t automatically do a postback when their controls are changed  Specify AutoPostBack=true to make change events cause a postback Slide 60 of 72
  • 61. Server Controls List Controls  Controls that handle repetition  Supported controls  <asp:dropdownlist>  <asp:listbox>  <asp:radiobuttonlist>  <asp:checkboxlist>  <asp:repeater>  <asp:datalist>  <asp:datagrid> Slide 61 of 72
  • 62. Server Controls List Controls  Repeater, DataList and DataGrid controls  Powerful, customizable list controls  Expose templates for customization  Can contain other controls  Provide event bubbling through their OnItemCommand event  More about these controls and templates later Slide 62 of 72
  • 63. Server Controls CheckBoxList & RadioButtonList  Provides a collection of check box or radio button controls  Can be populated via data binding <asp:CheckBoxList id=Check1 runat="server"> <asp:ListItem>Item 1</asp:ListItem> <asp:ListItem>Item 2</asp:ListItem> <asp:ListItem>Item 3</asp:ListItem> <asp:ListItem>Item 4</asp:ListItem> <asp:ListItem>Item 5</asp:ListItem> </asp:CheckBoxList> Slide 63 of 72
  • 64. Server Controls Intrinisic & Simple List Controls  Demo 1: WebControls1.aspx  Assorted intrinsic and list controls  Demo 2: WebControls2.aspx  Same controls with AutoPostBack Slide 64 of 72
  • 65. Server Controls Rich Controls  Custom controls with rich functionality  Supported Controls  <asp:calendar>  <asp:adrotator>  More will be added  3rd party controls are coming  Demo: RichControls1.aspx Slide 65 of 72
  • 66. Server Controls Validation Controls  Rich, declarative validation  Validation declared separately from input control  Extensible validation framework  Supports validation on client and server  Automatically detects uplevel clients  Avoids roundtrips for uplevel clients  Server-side validation is always done  Prevents users from spoofing Web Forms Slide 66 of 72
  • 67. Server Controls Validation Controls  <asp:RequiredFieldValidator>  Ensures that a value is entered  <asp:RangeValidator>  Checks if value is within minimum and maximum values  <asp:CompareValidator>  Compares value against constant, another control or data type  <asp:RegularExpressionValidator>  Tests if value matches a predefined pattern  <asp:CustomValidator>  Lets you create custom client- or server-side validation function  <asp:ValidationSummary>  Displays list of validation errors in one place Slide 67 of 72
  • 68. Server Controls Validation Controls  Validation controls are derived from System.Web.UI.WebControls.BaseValidator, which is derived from the Label control  Validation controls contain text which is displayed only if validation fails  Text property is displayed at control location  ErrorMessage is displayed in summary Slide 68 of 72
  • 69. Server Controls Validation Controls  Validation controls are associated with their target control using the ControlToValidate property <asp:TextBox id=TextBox1 runat=server /> <asp:RequiredFieldValidator id="Req1" ControlToValidate="TextBox1" Text="Required Field" runat=server />  Can create multiple validation controls with the same target control Slide 69 of 72
  • 70. Server Controls Validation Controls  Page.IsValid indicates if all validation controls on the page succeed void Submit_click(s as object, e as EventArgs) if (Page.IsValid) then Message.Text = "Page is valid!" end if end sub Slide 70 of 72
  • 71. Server Controls Validation Controls  Display property controls layout  Static: fixed layout, display won’t change if invalid  Dynamic: dynamic layout  None: no display; can still use ValidationSummary and Page.IsValid  Type property specifies expected data type: Currency, Date, Double, Integer, String Slide 71 of 72
  • 72. Server Controls Validation Controls  Can force down-level option  Only server-side validation <% @ Page Language="c#" ClientTarget="DownLevel" %> Slide 72 of 72
  • 73. Server Controls Validation Controls  Demo: ValidationControls1.aspx  Demonstrates each type of validation control Slide 73 of 72
  • 74. Agenda  Background  ASP.NET Overview  Programming Model  Programming Basics  Server Controls  Data Binding  Conclusion Slide 74 of 72
  • 75. Data Binding How to Populate Server Controls?  Specify the data in the control’s tags  Not dynamic: can’t get data from a database  Write code that uses the control’s object model  This is okay if you need to populate a simple value or list, but quickly gets too complicated for populating sophisticated displays  Data binding  Create an object that holds the data (DataSet, Array, string, int, etc.)  Associate that object with the control Slide 75 of 72
  • 76. Data Binding What Is It?  Provides a single simple yet powerful way to populate Web Form controls with data  Enables clean separation of code from UI  Supports binding to any data source  Properties, expressions, method calls  Collections (Array, Hashtable, etc.)  DataSet, DataTable, DataView, DataReader  XML  One way snapshot model  Requires code to reapply to data model Slide 76 of 72
  • 77. Data Binding What Is It?  Allows you to specify an expression  When the DataBind method of the control is called, the expression is evaluated and bound  DataBind for a single control (and subcontrols)  Page.DataBind binds all controls on a page  Works for scalars, e.g. Label control  Works for lists, e.g. DropDown control, ListBox control, etc.  Enables the use of templates Slide 77 of 72
  • 78. Data Binding Scalar Expressions  Data binding expression: <%# expression %>  Expression is evaluated when DataBind() is called <asp:Label id=label1 Text=<%# “The result is “ & (1 + 2) & “, the time is “ & DateTime.Now.ToLongTimeString() %> runat="server" /> public sub Page_Load(s as object, e as EventArgs) if (Page.IsPostBack) then else Page.DataBind() end if end sub Slide 78 of 72
  • 79. Data Binding Scalar Expressions  Demo: DataBinding1.aspx  Data binding to simple, scalar expressions Slide 79 of 72
  • 80. Data Binding Simple Lists  Data binding a list creates a user interface element for each item in the list  Each item contains text (displayed to user) and an optional value (not displayed)  The simple list controls:  <asp:ListBox>  Single or multiple select  <asp:DropDownList>  <asp:RadioButtonList>  <asp:CheckBoxList> Slide 80 of 72
  • 81. Data Binding Simple Lists  Steps to data bind a list control  Declare the list control  Optionally set DataValueField and DataTextField  Set its DataSource  Call DataBind() method Slide 81 of 72
  • 82. Data Binding Simple Lists  Demo: DataBinding2.aspx  Data binding to simple lists Slide 82 of 72
  • 83. Resources  General Sites  http://msdn.microsoft.com/net/aspnet/default.asp  http://www.asp.net/  http://www.fmexpense.com/quickstart/aspplus/defa ult.htm  http://www.asptoday.com/  http://www.aspng.com/aspng/index.aspx  http://www.4guysfromrolla.com/  http://www.aspfree.com/  http://www.devx.com/dotnet/  http://www.ibuyspy.com/ Slide 83 of 72
  • 84. Resources  ASP.NET Overview http://msdn.microsoft.com/msdnmag/issues/0900/ASPPlus/AS PPlus.asp  Validation http://msdn.microsoft.com/library/techart/aspplusvalid.h tm  Databinding in 3 parts http://msdn.microsoft.com/msdnmag/issues/01/03/cutting/c utting0103.asp http://msdn.microsoft.com/msdnmag/issues/01/04/cutting/c utting0104.asp http://msdn.microsoft.com/msdnmag/issues/01/05/cutting/c utting0105.asp  ASP.NET component model http://msdn.microsoft.com/msdnmag/issues/01/02/cutting/c utting0102.asp Slide 84 of 72

Editor's Notes

  1. In this module we will focus on what ASP.NET is, why it was created, and how to do the essential programming tasks. Next time we’ll go into a variety of other aspects of ASP.NET
  2. Have to write code to do anything. There is almost no purely declarative way to do anything.