Data binding and control
• With data
binding, data need no longer reside exclusively on the server. The data can be
maintained on the client and in a manner that distinguishes that data from the
XHTML markup on the page.
• Data are
sent to the client and then all subsequent manipulations take place on that
data directly on the client, thus eliminating server activity and network
delays.
• To bind
external data to XHTML elements, Internet Explorer employs software capable of
connecting the browser to live data sources. These are known as Data Source
Objects (DSOs). There are several DSOs available. The most popular DSO is the Tabular
Data Control (TDC).
Simple Data Binding
• The
Tabular Data Control (TDC) is an ActiveX control that is added to a page with
the object element. Data are stored in a separate file and not embedded into
the XHTML document.
<?xml
version = "1.0"?>
<!--
Simple data binding and recordset manipulation -->
<html>
<head>
<title>Intro
to Data Binding</title>
<object
id = "Colors" classid =
"CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83"> <param name =
"DataURL" value = 19 "HTMLStandardColors.txt" />
<param
name = "UseHeader" value = "TRUE" />
<param
name = "TextQualifier" value = "@" /> <param name =
"FieldDelim" value = "|" /> </object>
<script
type = "text/javascript">
<!—
var
recordSet = Colors.recordset;
function
reNumber()
{
if (
!recordSet.EOF )
recordNumber.innerText =
recordSet.absolutePosition; else
recordNumber.innerText
= " ";
}
function
forward()
{
recordSet.MoveNext();
if ( recordSet.EOF )
recordSet.MoveFirst();
colorSample.style.backgroundColor
= 46 colorRGB.innerText; reNumber();
}
// -->
</script>
</head>
<body
onload = "reNumber()" onclick = "forward()">
<h1>XHTML
Color Table</h1>
<h3>Click
to move forward in the recordset.</h3>
<p><strong>Color
Name: </strong>
<span
id = "colorId" style = "font-family: monospace" datasrc =
"#Colors" datafld = "ColorName"></span><br
/>
<strong>Color
RGB Value: </strong>
<span id = "colorRGB" style =
"font-family: monospace" datasrc = "#Colors" datafld =
"ColorHexRGBValue">
</span><br
/>
Currently
viewing record number
<span
id = "recordNumber" style = "font-weight: 900">
</span><br />
<span id = "colorSample" style =
"background-color: aqua; color: 888888; font-size: 30pt">Color
Sample
</span></p>
</body>
</html>
• Data in
each field is enclosed in text qualifiers (@) and each field is separated with
a field delimiter (|).
• The
object element here inserts the Tabular Data Control is one of the Microsoft
ActiveX controls built into Internet Explorer 5.5.
• Attribute
classid specifies the ActiveX control to add to the Web page—here we use the classid
of the Tabular Data Control.
The param
tag specifies parameters for the object in the object element. Attribute name
is the parameter name and attribute value is the value. Parameter DataURL is
the URL of the data source (HTMLStandardColors.txt). Parameter UseHeader, when
set to true, specifies that the first line of our data file has a header row.
• The
datasrc attribute refers to the id of the TDC object (Colors, in this case)
preceded with a hash mark (#), and
the datafld attribute specifies the name of the field to bind it to (ColorName,
in this case). This place the data contained in the first record (i.e., row) of
the ColorName column into the span element.
• MoveNext
method moves the current recordset forward by one row, automatically updating the
span to which we bound our data.
Binding to an img
Many different types of XHTML elements can be bound
to data sources. One of the more interesting elements in which to bind data is
the img element.
<?xml
version = "1.0"?>
<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!--
Binding data to an image -->
<html
xmlns = "http://www.w3.org/1999/xhtml">
<head>
<title>Binding
to a img</title>
<object
id = "Images" 13 classid = "CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83">
<param name = "DataURL" value = "images.txt" />
<param
name = "UseHeader" value = "True" />
</object>
<script
type = "text/javascript">
<!--
recordSet
= Images.recordset; function move( whereTo )
{
switch( whereTo ) { case "first":
recordSet.MoveFirst();
break; case "previous":
recordSet.MovePrevious();
if ( recordSet.BOF )
recordSet.MoveLast();
break;
case "next": recordSet.MoveNext(); if (
recordSet.EOF )
recordSet.MoveFirst();
break;
case "last": recordSet.MoveLast();
break;
}
}
// -->
</script> </head> <body>
<img datasrc = "#Images" datafld =
"image" alt = "Image" style = "position: relative;
left: 45px" /><br />
<input
type = "button" value = "First" onclick = "move(
'first' );" />
<input
type = "button" value = "Previous" onclick = "move(
'previous' );" />
<input
type = "button" value = "Next" onclick = "move( 'next'
);" />
<input
type = "button" value = "Last" onclick = "move( 'last'
);" />
</body>
Binding to a table
Binding
data to a table element is perhaps the most important feature of data binding.
<?xml
version = "1.0"?>
<!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Using Data Binding with tables -->
<html
xmlns = "http://www.w3.org/1999/xhtml">
<head>
<title>Data
Binding and Tables</title>
<object
id = "Colors" classid =
"CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83"> <param name =
"DataURL" value = "HTMLStandardColors.txt" />
<param
name = "UseHeader" value = "TRUE" />
<param
name = "TextQualifier" value = "@" />
<param
name = "FieldDelim" value = "|" />
</object>
</head>
<body
style = "background-color: darkseagreen">
<h1>Binding
Data to a <code>table</code></h1>
<table datasrc = "#Colors" style =
"border-style: ridge; border-color: darkseagreen; background-color:
lightcyan">
<thead>
<tr
style = "background-color: mediumslateblue">
<th>Color
Name</th>
<th>Color
RGB Value</th>
</tr>
</thead>
<tbody>
<tr
style = "background-color: lightsteelblue">
<td><span
datafld = "ColorName"></span></td>
<td><span datafld =
"ColorHexRGBValue" style = "font-family: monospace">
</span>
</td>
</tr>
</tbody>
• Bind the
table by adding the datasrc attribute to the opening table tag. We complete the
data binding by adding the datafld attribute to span tags that reside in the
table cells.
Related Topics
Privacy Policy, Terms and Conditions, DMCA Policy and Compliant
Copyright © 2018-2023 BrainKart.com; All Rights Reserved. Developed by Therithal info, Chennai.