Validation Controls Master Pages
Download
Report
Transcript Validation Controls Master Pages
DataBinding Controls
IT533 Lectures
Installations
Microsoft® SQL Server® 2012 Express
Download the sample sql script files from the course’s
web site CodeWeek3.zip.
Run them on the SQL Server Express.
In SQL Server Management Studio, open the .sql script
files.
Click Execute on the script files.
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
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
Data Binding
What Is It?
Allows you to specify an expression
When the appropriate DataBind method is called,
the expression is evaluated and bound
Page.DataBind
DataBind for a single control (and subcontrols)
Works for scalars, e.g. Label control
Works for lists, e.g. DropDown control,
ListBox control, etc.
Enables the use of templates
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 void Page_Load(object s, EventArgs e) {
if (! Page.IsPostBack)
Page.DataBind();
}
Data Binding
Scalar Expressions
Demo: DataBinding1.aspx
Data binding to simple, scalar expressions
Data Binding
Simple Lists
Data binding can be used to populate
list controls, e.g.
<asp:ListBox>
<asp:DropDownList>
<asp:RadioButtonList>
<asp:CheckBoxList>
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
Data Binding
Simple Lists
Demo: DataBinding2.aspx
Data binding to simple lists
Introduction to ADO.NET
.NET’s Database Framework
A data-access technology that enables applications to
connect to data stores and manipulate data contained in
them in various ways .
ADO.NET Architecture
ADO.NET Core Objects
Object
Description
Connection
Establishes a connection to a specific data source. (Base
class: DbConnection)
Command
Executes a command against a data source. Exposes
Parameters and can execute within the scope of a
Transaction from a Connection. (The base class:
DbCommand)
DataReader
Reads a forward-only, read-only stream of data from a data
source. (Base class: DbDataReader)
DataAdapter
Populates a DataSet and resolves updates with the data
source. (Base class: DbDataAdapter)
DataTable
Has a collection of DataRows and DataColumns representing
table data, used in disconnected model
DataSet
Represents a cache of data. Consists of a set of DataTables
and relations among them
Connected Data Access Model
Disconnected Data Access Model
Pros and Cons
Connected
Disconnected
Database Resources
-
+
Network Traffic
-
+
Memory Usage
+
-
Data Access
-
+
Steps of Data Access: Disconnected
Environment
Defining the connection string
Defining the connection
Defining the command
Defining the data adapter
Creating a new DataSet object
SELECT -> fill the dataset object with the result of the
query through the data adapter
Reading the records from the DataTables in the datasets
using the DataRow and DataColumn objects
UPDATE, INSERT or DELETE -> update the database through
the data adapter
Steps of Data Acces : Connected
Environment
Create connection
Create command (select-insert-update-delete)
Open connection
If SELECT -> use a DataReader to fetch data
If UPDATE, DELETE, INSERT use command
object’s methods
Close connection
Data Binding
Data Source Example
DataView GetSampleData() {
DataSet ds;
SqlConnection cxn;
SqlDataAdapter adp;
cxn = new SqlConnection("server=localhost; " +
"uid=sa;pwd=;database=Northwind");
adp = new SqlDataAdapter(
"select CategoryID, CategoryName from Categories",
cxn);
ds = new DataSet();
adp.Fill(ds, "Categories");
return ds.Tables["Categories"].DefaultView;
// Work on the data in memory using the DataSet (ds) object
}
Data Binding
Data Source Example
// Databind the list box to a data reader
SqlConnection cxn = new SqlConnection("Data
Source=.\\SQLEXPRESS;database=Northwind;
integrated security=true;
Trusted_Connection=True");
SqlCommand cmd = new SqlCommand("select CategoryID,
CategoryName from Categories", cxn);
cxn.Open();
SqlDataReader dr = cmd.ExecuteReader();
CheckBoxList1.DataSource = dr;
CheckBoxList1.DataValueField ="CategoryID";
CheckBoxList1.DataTextField="CategoryName";
CheckBoxList1.DataBind();
cxn.Close();
Data Binding
Database
Data binding can be used to populate server controls
with data from a database
Bind to a DataView of a DataSet
Specify value and text with DataValueField and
DataTextField, respectively
Data Binding
List Binding Examples
void Page_Load(object s, EventArgs e) {
ListBox1.DataSource = GetSampleData();
ListBox1.DataValueField = "CategoryID";
ListBox1.DataTextField = "CategoryName";
ListBox1.DataBind();
}
<asp:ListBox id="ListBox1" runat="server" />
void Page_Load(object s, EventArgs e) {
ListBox1.DataBind();
}
<asp:ListBox id="ListBox1" runat="server"
DataSource=<%# GetSampleData() %>
DataValueField=“CategoryID”
DataTextField=“CategoryName” />
Data Binding
Binding to a Database
Demo: DataBinding3.aspx
Data binding to a database
Choosing a DataReader or a Dataset
The type of functionality application requires should
be considered
Use a DataSet to:
Cache data locally in your application so that you can
manipulate it
Remote data between tiers or from an XML Web service
Interact with data dynamically such as combining and
relating data from multiple sources
Perform extensive processing on data without requiring an
open connection to the data source, which frees the
connection to be used by other clients
If readonly data is needed use DataReader to boost
performance
Best Practices
Don’t create a new connection string for every code
connecting to DB
Use web.config file to keep your connection strings through
the application scope
<connectionStrings>
<add name="NorthwindConnectionString"
connectionString="Data Source=.\SQLEXPRESS;
database=Northwind; integrated security=true;
Trusted_Connection=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
•
•
•
Use WebConfigurationManager.OpenWebConfiguration,
ConnectionStringSettings to access settings at runtime.
Let’s modify DataBinding3.aspx.cs
You can keep any other variable to reach at runtime using
this technique
Data Binding
GridView
Full-featured list output
Default look is a grid
Columns can be formatted with templates
AutoFormat is available
Optional paging
Updateable
Data Binding
Binding to All Columns
Binding all columns in the datasource
Declare an <asp:GridView>
Set its DataSource
Call DataBind()
void Page_Load(object s, EventArgs e) {
myGridView.DataSource = GetEmployeeData ();
myGridView.DataBind();
}
<asp:GridView id=myGridView runat="server" />
Data Binding
Binding to Specific Columns
http://www.asp.net/learn/data-access/tutorial-12-cs.aspx
By default, GridView will display all columns
To control columns to display:
Set AutoGenerateColumns=“false”
Specify Columns property
Add column definition
BoundField
TemplateField
ButtonField, CheckBoxField
HyperlinkField, ImageField
CommandField
Data Binding
Binding to Specific Columns
Binding to specific columns in the datasource
Declare an <asp:GridView>
Declare its Columns collection
Set its DataSource
Call its DataBind() method
<asp:GridView id=myGridView
autogeneratecolumns=false runat=server>
<Columns>
<asp:BoundField DataField="fname"
HeaderText="Name" />
<asp:BoundField DataField="lname"
HeaderText="LastName" />
</Columns>
</asp:GridView>
Data Binding
Templates
Templates provide a powerful way to customize the display
of a server control
Customize structure – not just style
Can use controls or other HTML within a template
3rd party controls can expose new templates
With data binding, templates specify a set of markup
(HTML or server controls) for each bound piece of data
Not just specifying formatting and style for a column
However, templates are not limited to data binding
No fixed set of templates
Controls may define their own and expose any number of them
Data Binding
Templates
Standard templates for list-bound controls
HeaderTemplate: rendered once before all data
bound rows
ItemTemplate: rendered once for each row in the
data source
AlternatingItemTemplate: like
ItemTemplate, but when present is used for every
other row
SeparatorTemplate: rendered between each row
FooterTemplate: rendered once, after all data
bound rows
Data Binding
Data Binding in Templates
Templates need to access the bound data
Container is an alias for the template’s containing
control
DataItem is an alias for the current row of the
datasource
DataBinder.Eval is a utility function provided to
retrieve and format data within a template
<%# DataBinder.Eval(Container.DataItem, "price", "$ {0}") %>
Data Binding
Repeater Control
Provides simple output of a list of items
No inherent visual form
Templates provide the visual form
No paging
Can provide templates for separators
Not updateable
Data Binding
Repeater Control
<asp:Repeater id="repList" runat="server">
<template name="HeaderTemplate">
<table>
<tr><td>Title</td><td>Type</td></tr>
</template>
<template name="ItemTemplate">
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"title_id") %></td>
<td><%# DataBinder.Eval(Container.DataItem,"type") %></td>
</tr>
</template>
<template name="FooterTemplate">
</table>
</template>
</asp:Repeater>
Data Binding
DataList Control
Provides list output with editing
Default look is a table
Customized via templates
Directional rendering (horizontal or vertical)
Single and multiple selection
Alternate item
Updateable
No paging
Data Binding
DataList Control
void Page_Load(object s, EventArgs e) {
myDataList.DataSource = GetSampleData();
myDataList.DataBind();
}
<asp:datalist id=myDataList runat=server>
<template name="itemtemplate">
<b>Title id:</b>
<%# DataBinder.Eval(Container.DataItem, "title_id") %>
<br> <b>Title:</b>
<%# DataBinder.Eval(Container.DataItem, "title") %>
</template>
</asp:datalist>
Data Binding
Repeater and DataList Demo
Demo: DataBinding6.aspx
Using templates and data binding to a database with
Repeater and DataList controls
Data Binding
Deciding When to Use the
GridView, DataList or Repeater
GridView provides the greatest feature set and simplest
Allow the end-user to sort, page, and edit
DataList provides more control over the look and feel of
the displayed data than the GridView
Requires more development time
Repeater allows for complete and total control of the
rendered HTML markup
No built-in editing, sorting, or paging support
The best performance of the three data Web controls
http://msdn.microsoft.com/en-us/library/aa479015.aspx
New ASP.NET 3.5 Data Binding Controls
ListView and DataPager
ASP.NET 3.5 introduces two new server-side data controls,
the ListView and the DataPager.
The ListView is highly customizable control for
displaying data.
You can define an assortment of templates such as
ItemsTemplate, SelectedItemTemplate,
ItemSeparatorTemplate, and GroupTemplate
to customize how to display data.
Includes styling with CSS, flexible pagination, and sorting,
inserting, deleting, and updating features.
New ASP.NET 3.5 Data Binding Controls
ListView and DataPager
The DataPager control works alongside a data control,
such as GridView or ListView, and customizes how it
pages through data.
With a data pager, you can customize the combination of
page-navigation buttons (such as next, previous, or page
numbers) that are displayed.
Newest DataBinding Control
ListView
Let’s do it:
ListViewDataBinding.aspx
ASP.NET MVC Framework
MVC is one of three ASP.NET programming models.
MVC is a framework for building web applications
using a Model View Controller design.
MVC forces you to separate web
3 different
applications into 3 components:
Models for data
Ex: a list of database records
Views for displaying the data
Ex: a GridView or an HTML table control
Controllers for handling the input
Ex: update or insert a new record into a database
MVC Framework Advantages
The MVC separation helps you manage complex
applications, because you can focus on one aspect a time.
For example, you can focus on the view without depending on
the business logic.
It also makes it easier to test an application.
The MVC separation also simplifies group development.
Different developers can work on the view, the controller
logic, and the business logic in parallel.
Integrated with all existing ASP.NET features such as
Master Pages, Security, and Authentication.
Full control over HTML, CSS, and JavaScript.
MVC Framework Model
Models both hold and manipulate application data.
Database might exist or can be created automatically.
Model MovieDB.cs:
using System.Web;
using System.Data.Entity;
namespace MvcDemo.Models
{
public class MovieDB
{
public int ID { get; set; }
public string Title { get; set; }
public string Director { get; set; }
public DateTime Date { get; set; }
}
public class MovieDBContext : DbContext
{
public DbSet<MovieDB> Movies { get; set; }
}
}
MVC Framework View
Lets you select any of the following View options:
Internet Application template
Razor Engine
HTML5 Markup
Razor is a new markup with .cshtml extension
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css"/>
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")"></script>
</head>
<body>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Movies", "Index", "Movies")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
<section id="main">
@RenderBody()
</section>
</body>
</html>
MVC Framework Controller
MVC maps URLs to methods.
These methods are in classes called "Controllers".
Controllers are responsible for processing incoming requests,
handling input, saving data, and sending a response to send back
to the client.
The Home controller defines the two controls Index and About:
using System.Web;
using System.Web.Mvc;
namespace MvcDemo.Controllers
{
public class HomeController : Controller
{
public ActionResult Index()
{return View();}
public ActionResult About()
{return View();}
}
}
MVC Demo 1 : MVCTest
Model: Employee
View: Home\Index.cshtml
Controller: HomeController
MVC Demo 2 : MVCTest
Model: Employee, Department
View: All.cshtml, Index.cshtml
Controller: EmployeeController