<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Stone Coast Web Design's Weblog</title>
    <link>http://www.stonecoastwebdesign.com/dasblogce/</link>
    <description>Mostly Web Development</description>
    <language>en-us</language>
    <copyright>Eric Van Buren</copyright>
    <lastBuildDate>Thu, 22 May 2008 15:29:08 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>ericvanburen@msn.com</managingEditor>
    <webMaster>ericvanburen@msn.com</webMaster>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=36cbe19e-a36f-4e30-b785-2edab67d747d</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,36cbe19e-a36f-4e30-b785-2edab67d747d.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,36cbe19e-a36f-4e30-b785-2edab67d747d.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=36cbe19e-a36f-4e30-b785-2edab67d747d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is a simple login user control used to demonstrate how to expose (get and set)
the properties associated with the control. Here is <a href="http://www.stonecoastwebdesign.com/code/unleashed35/chap7/LoginUserControl.aspx">a
working demo</a>. 
</p>
        <p>
** LoginUserControl.ascx **
</p>
        <pre class="csharpcode">&lt;script language=<span class="str">"VB"</span> runat=<span class="str">"server"</span>&gt; <span class="kwrd">Public</span> BackColor <span class="kwrd">As</span><span class="kwrd">String</span> = <span class="str">"white"</span><span class="kwrd">Public</span><span class="kwrd">Property</span> Login <span class="kwrd">As</span><span class="kwrd">String</span><span class="kwrd">Get</span><span class="kwrd">Return</span> txtLogin.Text <span class="kwrd">End</span><span class="kwrd">Get</span><span class="kwrd">Set</span> txtLogin.Text
= Value <span class="kwrd">End</span><span class="kwrd">Set</span><span class="kwrd">End</span><span class="kwrd">Property</span><span class="kwrd">Public</span><span class="kwrd">Property</span> Password <span class="kwrd">As</span><span class="kwrd">String</span><span class="kwrd">Get</span><span class="kwrd">Return</span> txtPassword.Text <span class="kwrd">End</span><span class="kwrd">Get</span><span class="kwrd">Set</span> txtPassword.Text
= Value <span class="kwrd">End</span><span class="kwrd">Set</span><span class="kwrd">End</span><span class="kwrd">Property</span><span class="kwrd">Public</span><span class="kwrd">Property</span> Status <span class="kwrd">As</span><span class="kwrd">String</span><span class="kwrd">Get</span><span class="kwrd">Return</span> lblStatus.Text <span class="kwrd">End</span><span class="kwrd">Get</span><span class="kwrd">Set</span> lblStatus.Text
= Value <span class="kwrd">End</span><span class="kwrd">Set</span><span class="kwrd">End</span><span class="kwrd">Property</span> &lt;/script&gt;
&lt;table style=<span class="str">"background-color:&lt;%=BackColor%&gt;;font:
10pt verdana;border-width:1;border-style:solid;border-color:black;"</span> cellspacing=15&gt;
&lt;tr&gt; &lt;td&gt;&lt;b&gt;Login: &lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;ASP:TextBox
id=<span class="str">"txtLogin"</span> runat=<span class="str">"server"</span>/&gt;&lt;/td&gt;
&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;b&gt;Password: &lt;/b&gt;&lt;/td&gt; &lt;td&gt;&lt;ASP:TextBox
id=<span class="str">"txtPassword"</span> TextMode=<span class="str">"Password"</span> runat=<span class="str">"server"</span>/&gt;&lt;/td&gt;
&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;ASP:Button Text=<span class="str">"Submit"</span> runat=<span class="str">"server"</span>/&gt;&lt;/td&gt;
&lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&lt;/td&gt; &lt;td&gt;&lt;asp:Label id=<span class="str">"lblStatus"</span> runat=<span class="str">"server"</span>/&gt;&lt;/td&gt;
&lt;/tr&gt; &lt;/table&gt;</pre>
        <p>
** LoginControl.aspx **
</p>
        <pre class="csharpcode">&lt;%@ Register TagPrefix=<span class="str">"MyUserControl"</span> TagName=<span class="str">"Login"</span> Src=<span class="str">"LoginUserControl.ascx"</span> %&gt;
&lt;html&gt; &lt;script language=<span class="str">"VB"</span> runat=<span class="str">"server"</span>&gt; <span class="kwrd">Sub</span> Page_Load(<span class="kwrd">ByVal</span> Sender <span class="kwrd">As</span><span class="kwrd">Object</span>, <span class="kwrd">ByVal</span> E <span class="kwrd">As</span> EventArgs) <span class="kwrd">If</span> (Page.IsPostBack) <span class="kwrd">Then</span> MyLabel.Text
&amp;= <span class="str">"The UserId is "</span> &amp; MyLogin.Login &amp; <span class="str">"&lt;br&gt;"</span> MyLabel.Text
&amp;= <span class="str">"The Password is "</span> &amp; MyLogin.Password
&amp; <span class="str">"&lt;br&gt;"</span> MyLogin.Status = <span class="str">"Hello
world"</span><span class="kwrd">End</span><span class="kwrd">If</span><span class="kwrd">End</span><span class="kwrd">Sub</span> &lt;/script&gt;
&lt;body style=<span class="str">"font: 10pt verdana"</span>&gt; &lt;h3&gt;A
Login User Control&lt;/h3&gt; &lt;form runat=<span class="str">"server"</span>&gt;
&lt;MyUserControl:Login id=<span class="str">"MyLogin"</span> UserId=<span class="str">"John
Doe"</span> Password=<span class="str">"Secret"</span> BackColor=<span class="str">"beige"</span> runat=<span class="str">"server"</span>/&gt;
&lt;/form&gt; &lt;asp:Label id=<span class="str">"MyLabel"</span> runat=<span class="str">"server"</span>/&gt;
&lt;/body&gt; &lt;/html&gt;</pre>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=36cbe19e-a36f-4e30-b785-2edab67d747d" />
      </body>
      <title>Login User Control</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,36cbe19e-a36f-4e30-b785-2edab67d747d.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,36cbe19e-a36f-4e30-b785-2edab67d747d.aspx</link>
      <pubDate>Thu, 22 May 2008 15:29:08 GMT</pubDate>
      <description>&lt;p&gt;
This is a simple login user control used to demonstrate how to expose (get and set)
the properties associated with the control. Here is &lt;a href="http://www.stonecoastwebdesign.com/code/unleashed35/chap7/LoginUserControl.aspx"&gt;a
working demo&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
** LoginUserControl.ascx **
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;script language=&lt;span class="str"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; BackColor &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;&amp;quot;white&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; Login &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Return&lt;/span&gt; txtLogin.Text &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt; txtLogin.Text
= Value &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; Password &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Return&lt;/span&gt; txtPassword.Text &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt; txtPassword.Text
= Value &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; Status &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Return&lt;/span&gt; lblStatus.Text &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt; lblStatus.Text
= Value &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &amp;lt;/script&amp;gt;
&amp;lt;table style=&lt;span class="str"&gt;&amp;quot;background-color:&amp;lt;%=BackColor%&amp;gt;;font:
10pt verdana;border-width:1;border-style:solid;border-color:black;&amp;quot;&lt;/span&gt; cellspacing=15&amp;gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Login: &amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;&amp;lt;ASP:TextBox
id=&lt;span class="str"&gt;&amp;quot;txtLogin&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;/&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Password: &amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;&amp;lt;ASP:TextBox
id=&lt;span class="str"&gt;&amp;quot;txtPassword&amp;quot;&lt;/span&gt; TextMode=&lt;span class="str"&gt;&amp;quot;Password&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;/&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;&amp;lt;ASP:Button Text=&lt;span class="str"&gt;&amp;quot;Submit&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;/&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt; &amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;&amp;lt;asp:Label id=&lt;span class="str"&gt;&amp;quot;lblStatus&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;/&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;&lt;/pre&gt;
&lt;p&gt;
** LoginControl.aspx **
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Register TagPrefix=&lt;span class="str"&gt;&amp;quot;MyUserControl&amp;quot;&lt;/span&gt; TagName=&lt;span class="str"&gt;&amp;quot;Login&amp;quot;&lt;/span&gt; Src=&lt;span class="str"&gt;&amp;quot;LoginUserControl.ascx&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;html&amp;gt; &amp;lt;script language=&lt;span class="str"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; E &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs) &lt;span class="kwrd"&gt;If&lt;/span&gt; (Page.IsPostBack) &lt;span class="kwrd"&gt;Then&lt;/span&gt; MyLabel.Text
&amp;amp;= &lt;span class="str"&gt;&amp;quot;The UserId is &amp;quot;&lt;/span&gt; &amp;amp; MyLogin.Login &amp;amp; &lt;span class="str"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt; MyLabel.Text
&amp;amp;= &lt;span class="str"&gt;&amp;quot;The Password is &amp;quot;&lt;/span&gt; &amp;amp; MyLogin.Password
&amp;amp; &lt;span class="str"&gt;&amp;quot;&amp;lt;br&amp;gt;&amp;quot;&lt;/span&gt; MyLogin.Status = &lt;span class="str"&gt;&amp;quot;Hello
world&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &amp;lt;/script&amp;gt;
&amp;lt;body style=&lt;span class="str"&gt;&amp;quot;font: 10pt verdana&amp;quot;&lt;/span&gt;&amp;gt; &amp;lt;h3&amp;gt;A
Login User Control&amp;lt;/h3&amp;gt; &amp;lt;form runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;MyUserControl:Login id=&lt;span class="str"&gt;&amp;quot;MyLogin&amp;quot;&lt;/span&gt; UserId=&lt;span class="str"&gt;&amp;quot;John
Doe&amp;quot;&lt;/span&gt; Password=&lt;span class="str"&gt;&amp;quot;Secret&amp;quot;&lt;/span&gt; BackColor=&lt;span class="str"&gt;&amp;quot;beige&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;/&amp;gt;
&amp;lt;/form&amp;gt; &amp;lt;asp:Label id=&lt;span class="str"&gt;&amp;quot;MyLabel&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;/&amp;gt;
&amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=36cbe19e-a36f-4e30-b785-2edab67d747d" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,36cbe19e-a36f-4e30-b785-2edab67d747d.aspx</comments>
      <category>ASP.NET;User Controls</category>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=f24e0c44-0a95-488c-a47b-0b87d34e8243</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f24e0c44-0a95-488c-a47b-0b87d34e8243.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,f24e0c44-0a95-488c-a47b-0b87d34e8243.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=f24e0c44-0a95-488c-a47b-0b87d34e8243</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
You can expose events from a user control.  After you expose the event, you can
handle the event in the page that contains the user control. Exposing events is useful
when you need to pass information up to the containing page.  In this example,
we create a custom tab strip with a user control. When a user clicks a tab, the content
is changed.  
</p>
        <p>
The TabStrip control exposes an event named TabClick. This event is raised in the
dlstTabStrip_SelectedIndexChanged() event handler when a tab is clicked. 
</p>
        <p>
Here is <a href="http://www.stonecoastwebdesign.com/code/unleashed35/chap7/TabStrip.aspx">a
working demo</a>. 
</p>
        <p>
** TabStripUserControl.ascx **
</p>
        <pre class="csharpcode">&lt;%@ Control Language=<span class="str">"VB"</span> ClassName=<span class="str">"TabStrip"</span> %&gt;
&lt;%@ Import <span class="kwrd">Namespace</span>=<span class="str">"System.Collections.Generic"</span> %&gt;
&lt;script runat=<span class="str">"server"</span>&gt; <span class="kwrd">Public</span><span class="kwrd">Event</span> TabClick <span class="kwrd">As</span> EventHandler <span class="rem">'''
&lt;summary&gt;</span><span class="rem">''' The index of the selected tab</span><span class="rem">'''
&lt;/summary&gt;</span><span class="kwrd">Public</span><span class="kwrd">ReadOnly</span><span class="kwrd">Property</span> SelectedIndex() <span class="kwrd">As</span><span class="kwrd">Integer</span><span class="kwrd">Get</span><span class="kwrd">Return</span> dlstTabStrip.SelectedIndex <span class="kwrd">End</span><span class="kwrd">Get</span><span class="kwrd">End</span><span class="kwrd">Property</span><span class="rem">'''
&lt;summary&gt;</span><span class="rem">''' Create the tabs</span><span class="rem">'''
&lt;/summary&gt;</span><span class="kwrd">Private</span><span class="kwrd">Sub</span> Page_Load() <span class="kwrd">If</span><span class="kwrd">Not</span> Page.IsPostBack <span class="kwrd">Then</span><span class="rem">'
Create the tabs</span><span class="kwrd">Dim</span> tabs <span class="kwrd">As</span><span class="kwrd">New</span> List(Of <span class="kwrd">String</span>)()
tabs.Add(<span class="str">"Products"</span>) tabs.Add(<span class="str">"Services"</span>)
tabs.Add(<span class="str">"About"</span>) <span class="rem">' Bind tabs
to the DataList</span> dlstTabStrip.DataSource = tabs dlstTabStrip.DataBind() <span class="rem">'
Select first tab</span> dlstTabStrip.SelectedIndex = 0 <span class="kwrd">End</span><span class="kwrd">If</span><span class="kwrd">End</span><span class="kwrd">Sub</span><span class="rem">'''
&lt;summary&gt;</span><span class="rem">''' This method executes when a user clicks
a tab</span><span class="rem">''' &lt;/summary&gt;</span><span class="kwrd">Protected</span><span class="kwrd">Sub</span> dlstTabStrip_SelectedIndexChanged(<span class="kwrd">ByVal</span> sender <span class="kwrd">As</span><span class="kwrd">Object</span>, <span class="kwrd">ByVal</span> e <span class="kwrd">As</span> EventArgs) <span class="kwrd">RaiseEvent</span> TabClick(<span class="kwrd">Me</span>,
EventArgs.Empty) <span class="kwrd">End</span><span class="kwrd">Sub</span> &lt;/script&gt;
&lt;asp:DataList id=<span class="str">"dlstTabStrip"</span> RepeatDirection=<span class="str">"Horizontal"</span> OnSelectedIndexChanged=<span class="str">"dlstTabStrip_SelectedIndexChanged"</span> CssClass=<span class="str">"tabs"</span> ItemStyle-CssClass=<span class="str">"tab"</span> SelectedItemStyle-CssClass=<span class="str">"selectedTab"</span> Runat=<span class="str">"server"</span>&gt;
&lt;ItemTemplate&gt; &lt;asp:LinkButton id=<span class="str">"lnkTab"</span> Text=<span class="rem">'&lt;%#
Container.DataItem %&gt;'</span> CommandName=<span class="str">"Select"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;/ItemTemplate&gt; &lt;/asp:DataList&gt; </pre>
        <pre class="csharpcode"> </pre>
        <p>
** TabStrip.aspx **
</p>
        <pre class="csharpcode">
        </pre>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <pre class="csharpcode">&lt;%@ Page Language=<span class="str">"VB"</span> %&gt;
&lt;%@ Register TagPrefix=<span class="str">"user"</span> TagName=<span class="str">"TabStrip"</span> Src=<span class="str">"TabStripUserControl.ascx"</span> %&gt;
&lt;!DOCTYPE html <span class="kwrd">PUBLIC</span><span class="str">"-//W3C//DTD
XHTML 1.1//EN"</span><span class="str">"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"</span>&gt;
&lt;script runat=<span class="str">"server"</span>&gt; <span class="kwrd">Protected</span><span class="kwrd">Sub</span> TabStrip1_TabClick(<span class="kwrd">ByVal</span> sender <span class="kwrd">As</span><span class="kwrd">Object</span>, <span class="kwrd">ByVal</span> e <span class="kwrd">As</span> EventArgs)
MultiView1.ActiveViewIndex = TabStrip1.SelectedIndex <span class="kwrd">End</span><span class="kwrd">Sub</span> &lt;/script&gt;
&lt;html xmlns=<span class="str">"http://www.w3.org/1999/xhtml"</span> &gt;
&lt;head id=<span class="str">"Head1"</span> runat=<span class="str">"server"</span>&gt;
&lt;style type=<span class="str">"text/css"</span>&gt; html { background-color:silver;
font:14px Georgia,Serif; } .tabs a { color:blue; text-decoration:none; font:14px Arial,Sans-Serif;
} .tab { background-color:#eeeeee; padding:5px; border:Solid 1px black; border-bottom:none;
} .selectedTab { background-color:white; padding:5px; border:Solid 1px black; border-bottom:none;
} .views { background-color:white; width:400px; border:Solid 1px black; padding:10px;
} &lt;/style&gt; &lt;title&gt;Show TabStrip&lt;/title&gt; &lt;/head&gt; &lt;body&gt;
&lt;form id=<span class="str">"form1"</span> runat=<span class="str">"server"</span>&gt;
&lt;div&gt; &lt;user:TabStrip ID=<span class="str">"TabStrip1"</span> OnTabClick=<span class="str">"TabStrip1_TabClick"</span> Runat=<span class="str">"Server"</span> /&gt;
&lt;div <span class="kwrd">class</span>=<span class="str">"views"</span>&gt;
&lt;asp:MultiView id=<span class="str">"MultiView1"</span> ActiveViewIndex=<span class="str">"0"</span> Runat=<span class="str">"server"</span>&gt;
&lt;asp:View ID=<span class="str">"Products"</span> runat=<span class="str">"server"</span>&gt;
&lt;h1&gt;Products&lt;/h1&gt; We sell a variety of useful products... &lt;/asp:View&gt;
&lt;asp:View ID=<span class="str">"Services"</span> runat=<span class="str">"server"</span>&gt;
&lt;h1&gt;Services&lt;/h1&gt; We offer a number of services... &lt;/asp:View&gt; &lt;asp:View
ID=<span class="str">"About"</span> runat=<span class="str">"server"</span>&gt;
&lt;h1&gt;About&lt;/h1&gt; We were the first company <span class="kwrd">to</span> offer
products <span class="kwrd">and</span> services... &lt;/asp:View&gt; &lt;/asp:MultiView&gt;
&lt;/div&gt; &lt;/div&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;</pre>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=f24e0c44-0a95-488c-a47b-0b87d34e8243" />
      </body>
      <title>Exposing Events from a User Control</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f24e0c44-0a95-488c-a47b-0b87d34e8243.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f24e0c44-0a95-488c-a47b-0b87d34e8243.aspx</link>
      <pubDate>Thu, 22 May 2008 14:41:16 GMT</pubDate>
      <description>&lt;p&gt;
You can expose events from a user control.&amp;#160; After you expose the event, you can
handle the event in the page that contains the user control. Exposing events is useful
when you need to pass information up to the containing page.&amp;#160; In this example,
we create a custom tab strip with a user control. When a user clicks a tab, the content
is changed.&amp;#160; 
&lt;/p&gt;
&lt;p&gt;
The TabStrip control exposes an event named TabClick. This event is raised in the
dlstTabStrip_SelectedIndexChanged() event handler when a tab is clicked. 
&lt;/p&gt;
&lt;p&gt;
Here is &lt;a href="http://www.stonecoastwebdesign.com/code/unleashed35/chap7/TabStrip.aspx"&gt;a
working demo&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
** TabStripUserControl.ascx **
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Control Language=&lt;span class="str"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; ClassName=&lt;span class="str"&gt;&amp;quot;TabStrip&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;%@ Import &lt;span class="kwrd"&gt;Namespace&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;System.Collections.Generic&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;script runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Event&lt;/span&gt; TabClick &lt;span class="kwrd"&gt;As&lt;/span&gt; EventHandler &lt;span class="rem"&gt;'''
&amp;lt;summary&amp;gt;&lt;/span&gt; &lt;span class="rem"&gt;''' The index of the selected tab&lt;/span&gt; &lt;span class="rem"&gt;'''
&amp;lt;/summary&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;ReadOnly&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; SelectedIndex() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Integer&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Return&lt;/span&gt; dlstTabStrip.SelectedIndex &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="rem"&gt;'''
&amp;lt;summary&amp;gt;&lt;/span&gt; &lt;span class="rem"&gt;''' Create the tabs&lt;/span&gt; &lt;span class="rem"&gt;'''
&amp;lt;/summary&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Page_Load() &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; Page.IsPostBack &lt;span class="kwrd"&gt;Then&lt;/span&gt; &lt;span class="rem"&gt;'
Create the tabs&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; tabs &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; List(Of &lt;span class="kwrd"&gt;String&lt;/span&gt;)()
tabs.Add(&lt;span class="str"&gt;&amp;quot;Products&amp;quot;&lt;/span&gt;) tabs.Add(&lt;span class="str"&gt;&amp;quot;Services&amp;quot;&lt;/span&gt;)
tabs.Add(&lt;span class="str"&gt;&amp;quot;About&amp;quot;&lt;/span&gt;) &lt;span class="rem"&gt;' Bind tabs
to the DataList&lt;/span&gt; dlstTabStrip.DataSource = tabs dlstTabStrip.DataBind() &lt;span class="rem"&gt;'
Select first tab&lt;/span&gt; dlstTabStrip.SelectedIndex = 0 &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &lt;span class="rem"&gt;'''
&amp;lt;summary&amp;gt;&lt;/span&gt; &lt;span class="rem"&gt;''' This method executes when a user clicks
a tab&lt;/span&gt; &lt;span class="rem"&gt;''' &amp;lt;/summary&amp;gt;&lt;/span&gt; &lt;span class="kwrd"&gt;Protected&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; dlstTabStrip_SelectedIndexChanged(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs) &lt;span class="kwrd"&gt;RaiseEvent&lt;/span&gt; TabClick(&lt;span class="kwrd"&gt;Me&lt;/span&gt;,
EventArgs.Empty) &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &amp;lt;/script&amp;gt;
&amp;lt;asp:DataList id=&lt;span class="str"&gt;&amp;quot;dlstTabStrip&amp;quot;&lt;/span&gt; RepeatDirection=&lt;span class="str"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt; OnSelectedIndexChanged=&lt;span class="str"&gt;&amp;quot;dlstTabStrip_SelectedIndexChanged&amp;quot;&lt;/span&gt; CssClass=&lt;span class="str"&gt;&amp;quot;tabs&amp;quot;&lt;/span&gt; ItemStyle-CssClass=&lt;span class="str"&gt;&amp;quot;tab&amp;quot;&lt;/span&gt; SelectedItemStyle-CssClass=&lt;span class="str"&gt;&amp;quot;selectedTab&amp;quot;&lt;/span&gt; Runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;ItemTemplate&amp;gt; &amp;lt;asp:LinkButton id=&lt;span class="str"&gt;&amp;quot;lnkTab&amp;quot;&lt;/span&gt; Text=&lt;span class="rem"&gt;'&amp;lt;%#
Container.DataItem %&amp;gt;'&lt;/span&gt; CommandName=&lt;span class="str"&gt;&amp;quot;Select&amp;quot;&lt;/span&gt; Runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;/ItemTemplate&amp;gt; &amp;lt;/asp:DataList&amp;gt; &lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&amp;#160;&lt;/pre&gt;
&lt;p&gt;
** TabStrip.aspx **
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;   &lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Page Language=&lt;span class="str"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;%@ Register TagPrefix=&lt;span class="str"&gt;&amp;quot;user&amp;quot;&lt;/span&gt; TagName=&lt;span class="str"&gt;&amp;quot;TabStrip&amp;quot;&lt;/span&gt; Src=&lt;span class="str"&gt;&amp;quot;TabStripUserControl.ascx&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;!DOCTYPE html &lt;span class="kwrd"&gt;PUBLIC&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;-//W3C//DTD
XHTML 1.1//EN&amp;quot;&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;script runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; &lt;span class="kwrd"&gt;Protected&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; TabStrip1_TabClick(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; sender &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; e &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs)
MultiView1.ActiveViewIndex = TabStrip1.SelectedIndex &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &amp;lt;/script&amp;gt;
&amp;lt;html xmlns=&lt;span class="str"&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt; &amp;gt;
&amp;lt;head id=&lt;span class="str"&gt;&amp;quot;Head1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;style type=&lt;span class="str"&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt;&amp;gt; html { background-color:silver;
font:14px Georgia,Serif; } .tabs a { color:blue; text-decoration:none; font:14px Arial,Sans-Serif;
} .tab { background-color:#eeeeee; padding:5px; border:Solid 1px black; border-bottom:none;
} .selectedTab { background-color:white; padding:5px; border:Solid 1px black; border-bottom:none;
} .views { background-color:white; width:400px; border:Solid 1px black; padding:10px;
} &amp;lt;/style&amp;gt; &amp;lt;title&amp;gt;Show TabStrip&amp;lt;/title&amp;gt; &amp;lt;/head&amp;gt; &amp;lt;body&amp;gt;
&amp;lt;form id=&lt;span class="str"&gt;&amp;quot;form1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;div&amp;gt; &amp;lt;user:TabStrip ID=&lt;span class="str"&gt;&amp;quot;TabStrip1&amp;quot;&lt;/span&gt; OnTabClick=&lt;span class="str"&gt;&amp;quot;TabStrip1_TabClick&amp;quot;&lt;/span&gt; Runat=&lt;span class="str"&gt;&amp;quot;Server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;div &lt;span class="kwrd"&gt;class&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;views&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;asp:MultiView id=&lt;span class="str"&gt;&amp;quot;MultiView1&amp;quot;&lt;/span&gt; ActiveViewIndex=&lt;span class="str"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; Runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;asp:View ID=&lt;span class="str"&gt;&amp;quot;Products&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;h1&amp;gt;Products&amp;lt;/h1&amp;gt; We sell a variety of useful products... &amp;lt;/asp:View&amp;gt;
&amp;lt;asp:View ID=&lt;span class="str"&gt;&amp;quot;Services&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;h1&amp;gt;Services&amp;lt;/h1&amp;gt; We offer a number of services... &amp;lt;/asp:View&amp;gt; &amp;lt;asp:View
ID=&lt;span class="str"&gt;&amp;quot;About&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;h1&amp;gt;About&amp;lt;/h1&amp;gt; We were the first company &lt;span class="kwrd"&gt;to&lt;/span&gt; offer
products &lt;span class="kwrd"&gt;and&lt;/span&gt; services... &amp;lt;/asp:View&amp;gt; &amp;lt;/asp:MultiView&amp;gt;
&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/form&amp;gt; &amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=f24e0c44-0a95-488c-a47b-0b87d34e8243" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,f24e0c44-0a95-488c-a47b-0b87d34e8243.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=7be4a603-8101-45fc-96e5-6ab9ae9c1606</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,7be4a603-8101-45fc-96e5-6ab9ae9c1606.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,7be4a603-8101-45fc-96e5-6ab9ae9c1606.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=7be4a603-8101-45fc-96e5-6ab9ae9c1606</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Having the ability to check or uncheck all of the checkboxes which appear inside of
a GridView is a frequent requirement.  There are several javascript libraries
which will handle this on the client-side which is usually the better way to go, but
this can also be done server-side and along with an AJAX UpdatePanel can be pretty
elegant.  Here is <a href="http://www.stonecoastwebdesign.com/code/unleashed35/GridView.Uncheck.Check.aspx">a
working demo</a>. 
<br /></p>
        <pre class="csharpcode">&lt;%@ Page Language=<span class="str">"VB"</span> %&gt;
&lt;!DOCTYPE html PUBLIC <span class="str">"-//W3C//DTD XHTML 1.0 Transitional//EN"</span><span class="str">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>&gt;
&lt;script runat=<span class="str">"server"</span>&gt; Protected Sub MasterCheck_Click(ByVal
sender As Object, ByVal e As CommandEventArgs) <span class="str">'Enumerate each GridViewRow
For Each gvr As GridViewRow In GridView1.Rows '</span>Programmatically access the
CheckBox from the TemplateField Dim cb As CheckBox = CType(gvr.FindControl(<span class="str">"Checkbox1"</span>),
CheckBox) Select Case e.CommandName Case <span class="str">"Check"</span><span class="str">'Check
all of the checkboxes cb.Checked = True '</span>Change the CommandName, CommandArgument
and Text of the button btnMasterCheck.CommandName = <span class="str">"Uncheck"</span> btnMasterCheck.CommandArgument
= <span class="str">"Uncheck"</span> btnMasterCheck.Text = <span class="str">"Uncheck
All"</span> Case <span class="str">"Uncheck"</span><span class="str">'Uncheck
all of the checkboxes cb.Checked = False '</span>Change the CommandName, CommandArgument
and Text of the button btnMasterCheck.CommandName = <span class="str">"Check"</span> btnMasterCheck.CommandArgument
= <span class="str">"Check"</span> btnMasterCheck.Text = <span class="str">"Check
All"</span> Case Else End Select Next End Sub &lt;/script&gt; &lt;html xmlns=<span class="str">"http://www.w3.org/1999/xhtml"</span>&gt;
&lt;head runat=<span class="str">"server"</span>&gt; &lt;title&gt;Check/Uncheck
All Checkboxes <span class="kwrd">in</span> a GridView&lt;/title&gt; &lt;/head&gt;
&lt;body&gt; &lt;form id=<span class="str">"form1"</span> runat=<span class="str">"server"</span>&gt;
&lt;div&gt; &lt;asp:SqlDataSource id=<span class="str">"srcMovies"</span> ConnectionString=<span class="str">'&lt;%$
ConnectionStrings:MyDatabase %&gt;'</span> SelectCommand=<span class="str">"SELECT
Title, Director FROM Movies ORDER BY Title"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:ScriptManager id=<span class="str">"sm1"</span> runat=<span class="str">"server"</span> /&gt;
&lt;asp:UpdatePanel id=<span class="str">"UpdatePanel1"</span> Runat=<span class="str">"server"</span>&gt;
&lt;ContentTemplate&gt; &lt;asp:GridView ID=<span class="str">"GridView1"</span> runat=<span class="str">"server"</span> DataSourceID=<span class="str">"srcMovies"</span> AutoGenerateColumns=<span class="str">"False"</span>&gt;
&lt;Columns&gt; &lt;asp:TemplateField HeaderText=<span class="str">""</span>&gt;
&lt;ItemTemplate&gt; &lt;asp:Checkbox id=<span class="str">"Checkbox1"</span> runat=<span class="str">"server"</span> /&gt;
&lt;/ItemTemplate&gt; &lt;/asp:TemplateField&gt; &lt;asp:BoundField HeaderText=<span class="str">"Title"</span> DataField=<span class="str">"Title"</span> /&gt;
&lt;asp:BoundField HeaderText=<span class="str">"Director"</span> DataField=<span class="str">"Director"</span> /&gt;
&lt;/Columns&gt; &lt;/asp:GridView&gt;&lt;br /&gt; &lt;asp:Button ID=<span class="str">"btnMasterCheck"</span> runat=<span class="str">"server"</span> CommandName=<span class="str">"Check"</span> CommandArgument=<span class="str">"Check"</span> OnCommand=<span class="str">"MasterCheck_Click"</span> Text=<span class="str">"Check
All"</span> /&gt; &lt;/ContentTemplate&gt; &lt;/asp:UpdatePanel&gt; &lt;/div&gt;
&lt;/form&gt; &lt;/body&gt; &lt;/html&gt;</pre>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <style type="text/css">

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <style type="text/css">


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=7be4a603-8101-45fc-96e5-6ab9ae9c1606" />
      </body>
      <title>Check/Uncheck All Checkboxes in a GridView</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,7be4a603-8101-45fc-96e5-6ab9ae9c1606.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,7be4a603-8101-45fc-96e5-6ab9ae9c1606.aspx</link>
      <pubDate>Wed, 14 May 2008 13:22:37 GMT</pubDate>
      <description>&lt;p&gt;
Having the ability to check or uncheck all of the checkboxes which appear inside of
a GridView is a frequent requirement.&amp;#160; There are several javascript libraries
which will handle this on the client-side which is usually the better way to go, but
this can also be done server-side and along with an AJAX UpdatePanel can be pretty
elegant.&amp;#160; Here is &lt;a href="http://www.stonecoastwebdesign.com/code/unleashed35/GridView.Uncheck.Check.aspx"&gt;a
working demo&lt;/a&gt;. 
&lt;br /&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Page Language=&lt;span class="str"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC &lt;span class="str"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;script runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; Protected Sub MasterCheck_Click(ByVal
sender As Object, ByVal e As CommandEventArgs) &lt;span class="str"&gt;'Enumerate each GridViewRow
For Each gvr As GridViewRow In GridView1.Rows '&lt;/span&gt;Programmatically access the
CheckBox from the TemplateField Dim cb As CheckBox = CType(gvr.FindControl(&lt;span class="str"&gt;&amp;quot;Checkbox1&amp;quot;&lt;/span&gt;),
CheckBox) Select Case e.CommandName Case &lt;span class="str"&gt;&amp;quot;Check&amp;quot;&lt;/span&gt; &lt;span class="str"&gt;'Check
all of the checkboxes cb.Checked = True '&lt;/span&gt;Change the CommandName, CommandArgument
and Text of the button btnMasterCheck.CommandName = &lt;span class="str"&gt;&amp;quot;Uncheck&amp;quot;&lt;/span&gt; btnMasterCheck.CommandArgument
= &lt;span class="str"&gt;&amp;quot;Uncheck&amp;quot;&lt;/span&gt; btnMasterCheck.Text = &lt;span class="str"&gt;&amp;quot;Uncheck
All&amp;quot;&lt;/span&gt; Case &lt;span class="str"&gt;&amp;quot;Uncheck&amp;quot;&lt;/span&gt; &lt;span class="str"&gt;'Uncheck
all of the checkboxes cb.Checked = False '&lt;/span&gt;Change the CommandName, CommandArgument
and Text of the button btnMasterCheck.CommandName = &lt;span class="str"&gt;&amp;quot;Check&amp;quot;&lt;/span&gt; btnMasterCheck.CommandArgument
= &lt;span class="str"&gt;&amp;quot;Check&amp;quot;&lt;/span&gt; btnMasterCheck.Text = &lt;span class="str"&gt;&amp;quot;Check
All&amp;quot;&lt;/span&gt; Case Else End Select Next End Sub &amp;lt;/script&amp;gt; &amp;lt;html xmlns=&lt;span class="str"&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;head runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; &amp;lt;title&amp;gt;Check/Uncheck
All Checkboxes &lt;span class="kwrd"&gt;in&lt;/span&gt; a GridView&amp;lt;/title&amp;gt; &amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt; &amp;lt;form id=&lt;span class="str"&gt;&amp;quot;form1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;div&amp;gt; &amp;lt;asp:SqlDataSource id=&lt;span class="str"&gt;&amp;quot;srcMovies&amp;quot;&lt;/span&gt; ConnectionString=&lt;span class="str"&gt;'&amp;lt;%$
ConnectionStrings:MyDatabase %&amp;gt;'&lt;/span&gt; SelectCommand=&lt;span class="str"&gt;&amp;quot;SELECT
Title, Director FROM Movies ORDER BY Title&amp;quot;&lt;/span&gt; Runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;asp:ScriptManager id=&lt;span class="str"&gt;&amp;quot;sm1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;asp:UpdatePanel id=&lt;span class="str"&gt;&amp;quot;UpdatePanel1&amp;quot;&lt;/span&gt; Runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;ContentTemplate&amp;gt; &amp;lt;asp:GridView ID=&lt;span class="str"&gt;&amp;quot;GridView1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; DataSourceID=&lt;span class="str"&gt;&amp;quot;srcMovies&amp;quot;&lt;/span&gt; AutoGenerateColumns=&lt;span class="str"&gt;&amp;quot;False&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;Columns&amp;gt; &amp;lt;asp:TemplateField HeaderText=&lt;span class="str"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;ItemTemplate&amp;gt; &amp;lt;asp:Checkbox id=&lt;span class="str"&gt;&amp;quot;Checkbox1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;/ItemTemplate&amp;gt; &amp;lt;/asp:TemplateField&amp;gt; &amp;lt;asp:BoundField HeaderText=&lt;span class="str"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt; DataField=&lt;span class="str"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;asp:BoundField HeaderText=&lt;span class="str"&gt;&amp;quot;Director&amp;quot;&lt;/span&gt; DataField=&lt;span class="str"&gt;&amp;quot;Director&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;/Columns&amp;gt; &amp;lt;/asp:GridView&amp;gt;&amp;lt;br /&amp;gt; &amp;lt;asp:Button ID=&lt;span class="str"&gt;&amp;quot;btnMasterCheck&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; CommandName=&lt;span class="str"&gt;&amp;quot;Check&amp;quot;&lt;/span&gt; CommandArgument=&lt;span class="str"&gt;&amp;quot;Check&amp;quot;&lt;/span&gt; OnCommand=&lt;span class="str"&gt;&amp;quot;MasterCheck_Click&amp;quot;&lt;/span&gt; Text=&lt;span class="str"&gt;&amp;quot;Check
All&amp;quot;&lt;/span&gt; /&amp;gt; &amp;lt;/ContentTemplate&amp;gt; &amp;lt;/asp:UpdatePanel&amp;gt; &amp;lt;/div&amp;gt;
&amp;lt;/form&amp;gt; &amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;style type="text/css"&gt;


.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=7be4a603-8101-45fc-96e5-6ab9ae9c1606" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,7be4a603-8101-45fc-96e5-6ab9ae9c1606.aspx</comments>
      <category>ASP.NET;Javascript/AJAX</category>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=b97abe33-87f0-4861-b72c-d6afc8b3324a</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,b97abe33-87f0-4861-b72c-d6afc8b3324a.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,b97abe33-87f0-4861-b72c-d6afc8b3324a.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=b97abe33-87f0-4861-b72c-d6afc8b3324a</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
User controls are somewhat outdated already with the introduction of partial classes
in ASP.NET 2.0 but I still find them useful.  I think of them similar to the
include pages in classic ASP. This is a simple example of how to get the text value
from a user control on the parent page. 
</p>
        <pre class="csharpcode">&lt;%@ Page Language=<span class="str">"VB"</span> %&gt;
&lt;%@ Register Src=<span class="str">"header.ascx"</span> TagName=<span class="str">"header"</span> TagPrefix=<span class="str">"uc1"</span> %&gt;
&lt;!DOCTYPE html PUBLIC <span class="str">"-//W3C//DTD XHTML 1.0 Transitional//EN"</span><span class="str">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>&gt;
&lt;script runat=<span class="str">"server"</span>&gt; Sub Page_Load(ByVal
Src As Object, ByVal E As EventArgs) Dim CompanyName As TextBox = CType(Page.FindControl(<span class="str">"Header1$txtCompanyName"</span>),
TextBox) lblCompanyName.Text = CompanyName.Text End Sub &lt;/script&gt; &lt;html xmlns=<span class="str">"http://www.w3.org/1999/xhtml"</span>&gt;
&lt;head runat=<span class="str">"server"</span>&gt; &lt;title&gt;&lt;/title&gt;
&lt;link href=<span class="str">"StyleSheet.css"</span> rel=<span class="str">"stylesheet"</span> type=<span class="str">"text/css"</span> /&gt;
&lt;/head&gt; &lt;body&gt; &lt;form id=<span class="str">"form1"</span> runat=<span class="str">"server"</span>&gt;
&lt;div&gt; &lt;!--This <span class="kwrd">is</span> my user control page header--&gt;
&lt;uc1:header id=<span class="str">"Header1"</span> runat=<span class="str">"server"</span>&gt;&lt;/uc1:header&gt;
&lt;br /&gt; &lt;br /&gt; &lt;asp:Label ID=<span class="str">"lblCompanyName"</span> runat=<span class="str">"server"</span> Text=<span class="str">"Label"
/</span>&gt; &lt;asp:TextBox ID=<span class="str">"TextBox1"</span> runat=<span class="str">"server"</span> /&gt;
&lt;/div&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;</pre>
        <p>
This is an example of how to set the text value from inside the user control on the
parent page.
</p>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <pre class="csharpcode">&lt;%@ Control Language=<span class="str">"VB"</span> ClassName=<span class="str">"header"</span> EnableViewState=<span class="str">"false"</span> %&gt;
&lt;script runat=<span class="str">"server"</span>&gt; <span class="kwrd">Private</span><span class="kwrd">Sub</span> Page_Load(<span class="kwrd">ByVal</span> Src <span class="kwrd">As</span><span class="kwrd">Object</span>, <span class="kwrd">ByVal</span> E <span class="kwrd">As</span> EventArgs) <span class="kwrd">If</span><span class="kwrd">Not</span> Page.IsPostBack <span class="kwrd">Then</span><span class="kwrd">Dim</span> TextBox1 <span class="kwrd">As</span> Textbox
=<span class="kwrd">CType</span>(<span class="kwrd">Me</span>.Parent.FindControl(<span class="str">"TextBox1"</span>),TextBox)
TextBox1.Text = <span class="str">"Eat your veggies"</span><span class="kwrd">End</span><span class="kwrd">If</span><span class="kwrd">End</span><span class="kwrd">Sub<br /></span>&lt;/script&gt; &lt;table width=<span class="str">"100%"</span> border=<span class="str">"0"</span> cellpadding=<span class="str">"3"</span> cellspacing=<span class="str">"0"</span>&gt;
&lt;tr&gt; &lt;td&gt;Company: &lt;asp:Textbox ID=<span class="str">"txtCompanyName"</span> runat=<span class="str">"server"</span> CssClass=<span class="str">"textbox"</span> Text=<span class="str">"Company
Name"</span> ToolTip=<span class="str">"Enter a company name"</span> /&gt; 
<br />
&lt;asp:Button ID=<span class="str">"btnCompanySearch"</span> runat=<span class="str">"server"</span> Text=<span class="str">"go"</span> CssClass=<span class="str">"buttons"</span> OnClick=<span class="str">"QuickSearch_Companies_Click"</span> /&gt;&lt;/td&gt;
&lt;/tr&gt; &lt;/table&gt;</pre>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=b97abe33-87f0-4861-b72c-d6afc8b3324a" />
      </body>
      <title>User Controls</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,b97abe33-87f0-4861-b72c-d6afc8b3324a.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,b97abe33-87f0-4861-b72c-d6afc8b3324a.aspx</link>
      <pubDate>Mon, 12 May 2008 19:01:26 GMT</pubDate>
      <description>&lt;p&gt;
&lt;br /&gt;
User controls are somewhat outdated already with the introduction of partial classes
in ASP.NET 2.0 but I still find them useful.&amp;#160; I think of them similar to the
include pages in classic ASP. This is a simple example of how to get the text value
from a user control on the parent page. 
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Page Language=&lt;span class="str"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;%@ Register Src=&lt;span class="str"&gt;&amp;quot;header.ascx&amp;quot;&lt;/span&gt; TagName=&lt;span class="str"&gt;&amp;quot;header&amp;quot;&lt;/span&gt; TagPrefix=&lt;span class="str"&gt;&amp;quot;uc1&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;!DOCTYPE html PUBLIC &lt;span class="str"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;script runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; Sub Page_Load(ByVal
Src As Object, ByVal E As EventArgs) Dim CompanyName As TextBox = CType(Page.FindControl(&lt;span class="str"&gt;&amp;quot;Header1$txtCompanyName&amp;quot;&lt;/span&gt;),
TextBox) lblCompanyName.Text = CompanyName.Text End Sub &amp;lt;/script&amp;gt; &amp;lt;html xmlns=&lt;span class="str"&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;head runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;
&amp;lt;link href=&lt;span class="str"&gt;&amp;quot;StyleSheet.css&amp;quot;&lt;/span&gt; rel=&lt;span class="str"&gt;&amp;quot;stylesheet&amp;quot;&lt;/span&gt; type=&lt;span class="str"&gt;&amp;quot;text/css&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;/head&amp;gt; &amp;lt;body&amp;gt; &amp;lt;form id=&lt;span class="str"&gt;&amp;quot;form1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;div&amp;gt; &amp;lt;!--This &lt;span class="kwrd"&gt;is&lt;/span&gt; my user control page header--&amp;gt;
&amp;lt;uc1:header id=&lt;span class="str"&gt;&amp;quot;Header1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/uc1:header&amp;gt;
&amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt; &amp;lt;asp:Label ID=&lt;span class="str"&gt;&amp;quot;lblCompanyName&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span class="str"&gt;&amp;quot;Label&amp;quot;
/&lt;/span&gt;&amp;gt; &amp;lt;asp:TextBox ID=&lt;span class="str"&gt;&amp;quot;TextBox1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;/div&amp;gt; &amp;lt;/form&amp;gt; &amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;p&gt;
This is an example of how to set the text value from inside the user control on the
parent page.
&lt;/p&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Control Language=&lt;span class="str"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; ClassName=&lt;span class="str"&gt;&amp;quot;header&amp;quot;&lt;/span&gt; EnableViewState=&lt;span class="str"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;script runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; &lt;span class="kwrd"&gt;Private&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; Page_Load(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; Src &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;Object&lt;/span&gt;, &lt;span class="kwrd"&gt;ByVal&lt;/span&gt; E &lt;span class="kwrd"&gt;As&lt;/span&gt; EventArgs) &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;Not&lt;/span&gt; Page.IsPostBack &lt;span class="kwrd"&gt;Then&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; TextBox1 &lt;span class="kwrd"&gt;As&lt;/span&gt; Textbox
=&lt;span class="kwrd"&gt;CType&lt;/span&gt;(&lt;span class="kwrd"&gt;Me&lt;/span&gt;.Parent.FindControl(&lt;span class="str"&gt;&amp;quot;TextBox1&amp;quot;&lt;/span&gt;),TextBox)
TextBox1.Text = &lt;span class="str"&gt;&amp;quot;Eat your veggies&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;If&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;br /&gt;
&lt;/span&gt;&amp;lt;/script&amp;gt; &amp;lt;table width=&lt;span class="str"&gt;&amp;quot;100%&amp;quot;&lt;/span&gt; border=&lt;span class="str"&gt;&amp;quot;0&amp;quot;&lt;/span&gt; cellpadding=&lt;span class="str"&gt;&amp;quot;3&amp;quot;&lt;/span&gt; cellspacing=&lt;span class="str"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;tr&amp;gt; &amp;lt;td&amp;gt;Company: &amp;lt;asp:Textbox ID=&lt;span class="str"&gt;&amp;quot;txtCompanyName&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; CssClass=&lt;span class="str"&gt;&amp;quot;textbox&amp;quot;&lt;/span&gt; Text=&lt;span class="str"&gt;&amp;quot;Company
Name&amp;quot;&lt;/span&gt; ToolTip=&lt;span class="str"&gt;&amp;quot;Enter a company name&amp;quot;&lt;/span&gt; /&amp;gt; 
&lt;br /&gt;
&amp;lt;asp:Button ID=&lt;span class="str"&gt;&amp;quot;btnCompanySearch&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; Text=&lt;span class="str"&gt;&amp;quot;go&amp;quot;&lt;/span&gt; CssClass=&lt;span class="str"&gt;&amp;quot;buttons&amp;quot;&lt;/span&gt; OnClick=&lt;span class="str"&gt;&amp;quot;QuickSearch_Companies_Click&amp;quot;&lt;/span&gt; /&amp;gt;&amp;lt;/td&amp;gt;
&amp;lt;/tr&amp;gt; &amp;lt;/table&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=b97abe33-87f0-4861-b72c-d6afc8b3324a" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,b97abe33-87f0-4861-b72c-d6afc8b3324a.aspx</comments>
      <category>ASP.NET</category>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=be144ce3-5e3a-4321-9290-7cf5bba01d00</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,be144ce3-5e3a-4321-9290-7cf5bba01d00.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,be144ce3-5e3a-4321-9290-7cf5bba01d00.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=be144ce3-5e3a-4321-9290-7cf5bba01d00</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
I've been following <a href="http://mattberseth.com">Matt Berseth's .NET Developer's
Blog</a> and he has some great stuff on here. The example below is from his post on <a href="http://mattberseth.com/blog/2008/04/building_a_vs2008_styled_grid_1.html">Building
a VS2008 Styled Grid with the GridView Control</a>.  I've made simpler variation
of his <a href="http://www.stonecoastwebdesign.com/code/unleashed35/style.grid.aspx">here</a>.
</p>
        <p>
First the style sheet where all of the real magic happens:
</p>
        <pre class="csharpcode">body 
{
    background-color: Aliceblue;
    font-family:Tahoma;
    font-size: 12px;
}

.grid 
{ 
    width:90%; 
    font-family:Tahoma; 
    display: block;
    margin-left: auto;
    margin-right: auto      
}

.director
{
    color: Green;
}

.grid .datatable
{
    width:100%;
    color:#666;
}        
.grid .datatable TH
{
    font-size:12px;
    font-weight:bold;
    letter-spacing:0px;
    text-align:left;
    padding:2px 4px;
    color:#333333;
    border-bottom:solid 2px #bbd9ee;
}
.grid .datatable TH A
{ 
    text-decoration:none;
    padding-right:18px; 
    color:#0066cc;
}

.grid .datatable .row TD
{
    font-size:11px;
    text-align:left;
    padding:6px 4px;
    border-bottom:solid 1px #bbd9ee;
}      
.grid .datatable .row:hover
{
    background-color:#fffacd;
    color:#000;
}
.grid .datatable .row TD.first { padding-left:10px; }
.grid .datatable TH.first { padding-left:10px; }
.grid .datatable .row:hover .first
{
    background-repeat:no-repeat;   
    background-image:url(../img/bullet.gif);
}  </pre>
        <style type="text/css">

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <style type="text/css">

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <p>
Then the .aspx page itself
</p>
        <pre class="csharpcode">&lt;form id=<span class="str">"form1"</span> runat=<span class="str">"server"</span>&gt;
&lt;div&gt; &lt;asp:SqlDataSource id=<span class="str">"srcMovies"</span> ConnectionString=<span class="rem">'&lt;%$
ConnectionStrings:MyDatabase %&gt;'</span> SelectCommand=<span class="str">"SELECT
Title, Director FROM Movies ORDER BY Title"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;div <span class="kwrd">class</span>=<span class="str">"grid"</span>&gt;
&lt;asp:GridView ID=<span class="str">"GridView1"</span> runat=<span class="str">"server"</span> BorderStyle=<span class="str">"None"</span> DataSourceID=<span class="str">"srcMovies"</span> HorizontalAlign=<span class="str">"Center"</span> CssClass=<span class="str">"datatable"</span> AutoGenerateColumns=<span class="str">"false"</span> BorderWidth=<span class="str">"1px"</span> BackColor=<span class="str">"White"</span> GridLines=<span class="str">"Horizontal"</span>&gt;
&lt;RowStyle CssClass=<span class="str">"row"</span> /&gt; &lt;Columns&gt;
&lt;asp:BoundField DataField=<span class="str">"Title"</span> HeaderText=<span class="str">"Title"</span> ItemStyle-CssClass=<span class="str">"first"</span> /&gt;
&lt;asp:BoundField DataField=<span class="str">"Director"</span> HeaderText=<span class="str">"Director"
ItemStyle-CssClass=<span class="str">"director"</span></span> /&gt; &lt;/Columns&gt;
&lt;/asp:GridView&gt; &lt;/div&gt; &lt;/div&gt; &lt;/form&gt;</pre>
        <style type="text/css">

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=be144ce3-5e3a-4321-9290-7cf5bba01d00" />
      </body>
      <title>A Styled GridView</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,be144ce3-5e3a-4321-9290-7cf5bba01d00.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,be144ce3-5e3a-4321-9290-7cf5bba01d00.aspx</link>
      <pubDate>Wed, 07 May 2008 17:43:11 GMT</pubDate>
      <description>&lt;p&gt;
&lt;br /&gt;
I've been following &lt;a href="http://mattberseth.com"&gt;Matt Berseth's .NET Developer's
Blog&lt;/a&gt; and he has some great stuff on here. The example below is from his post on &lt;a href="http://mattberseth.com/blog/2008/04/building_a_vs2008_styled_grid_1.html"&gt;Building
a VS2008 Styled Grid with the GridView Control&lt;/a&gt;.&amp;#160; I've made simpler variation
of his &lt;a href="http://www.stonecoastwebdesign.com/code/unleashed35/style.grid.aspx"&gt;here&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
First the style sheet where all of the real magic happens:
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;body 
{
    background-color: Aliceblue;
    font-family:Tahoma;
    font-size: 12px;
}

.grid 
{ 
    width:90%; 
    font-family:Tahoma; 
    display: block;
    margin-left: auto;
    margin-right: auto      
}

.director
{
    color: Green;
}

.grid .datatable
{
    width:100%;
    color:#666;
}        
.grid .datatable TH
{
    font-size:12px;
    font-weight:bold;
    letter-spacing:0px;
    text-align:left;
    padding:2px 4px;
    color:#333333;
    border-bottom:solid 2px #bbd9ee;
}
.grid .datatable TH A
{ 
    text-decoration:none;
    padding-right:18px; 
    color:#0066cc;
}

.grid .datatable .row TD
{
    font-size:11px;
    text-align:left;
    padding:6px 4px;
    border-bottom:solid 1px #bbd9ee;
}      
.grid .datatable .row:hover
{
    background-color:#fffacd;
    color:#000;
}
.grid .datatable .row TD.first { padding-left:10px; }
.grid .datatable TH.first { padding-left:10px; }
.grid .datatable .row:hover .first
{
    background-repeat:no-repeat;   
    background-image:url(../img/bullet.gif);
}  &lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;p&gt;
Then the .aspx page itself
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;form id=&lt;span class="str"&gt;&amp;quot;form1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;div&amp;gt; &amp;lt;asp:SqlDataSource id=&lt;span class="str"&gt;&amp;quot;srcMovies&amp;quot;&lt;/span&gt; ConnectionString=&lt;span class="rem"&gt;'&amp;lt;%$
ConnectionStrings:MyDatabase %&amp;gt;'&lt;/span&gt; SelectCommand=&lt;span class="str"&gt;&amp;quot;SELECT
Title, Director FROM Movies ORDER BY Title&amp;quot;&lt;/span&gt; Runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;div &lt;span class="kwrd"&gt;class&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;grid&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;asp:GridView ID=&lt;span class="str"&gt;&amp;quot;GridView1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; BorderStyle=&lt;span class="str"&gt;&amp;quot;None&amp;quot;&lt;/span&gt; DataSourceID=&lt;span class="str"&gt;&amp;quot;srcMovies&amp;quot;&lt;/span&gt; HorizontalAlign=&lt;span class="str"&gt;&amp;quot;Center&amp;quot;&lt;/span&gt; CssClass=&lt;span class="str"&gt;&amp;quot;datatable&amp;quot;&lt;/span&gt; AutoGenerateColumns=&lt;span class="str"&gt;&amp;quot;false&amp;quot;&lt;/span&gt; BorderWidth=&lt;span class="str"&gt;&amp;quot;1px&amp;quot;&lt;/span&gt; BackColor=&lt;span class="str"&gt;&amp;quot;White&amp;quot;&lt;/span&gt; GridLines=&lt;span class="str"&gt;&amp;quot;Horizontal&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;RowStyle CssClass=&lt;span class="str"&gt;&amp;quot;row&amp;quot;&lt;/span&gt; /&amp;gt; &amp;lt;Columns&amp;gt;
&amp;lt;asp:BoundField DataField=&lt;span class="str"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt; HeaderText=&lt;span class="str"&gt;&amp;quot;Title&amp;quot;&lt;/span&gt; ItemStyle-CssClass=&lt;span class="str"&gt;&amp;quot;first&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;asp:BoundField DataField=&lt;span class="str"&gt;&amp;quot;Director&amp;quot;&lt;/span&gt; HeaderText=&lt;span class="str"&gt;&amp;quot;Director&amp;quot;
ItemStyle-CssClass=&lt;span class="str"&gt;&amp;quot;director&amp;quot;&lt;/span&gt;&lt;/span&gt; /&amp;gt; &amp;lt;/Columns&amp;gt;
&amp;lt;/asp:GridView&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/form&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;

.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=be144ce3-5e3a-4321-9290-7cf5bba01d00" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,be144ce3-5e3a-4321-9290-7cf5bba01d00.aspx</comments>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=479d2965-83cd-4c72-84cb-96f9e6aed09b</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,479d2965-83cd-4c72-84cb-96f9e6aed09b.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,479d2965-83cd-4c72-84cb-96f9e6aed09b.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=479d2965-83cd-4c72-84cb-96f9e6aed09b</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
          <a title="http://www.ajaxload.info/" href="http://www.ajaxload.info/">http://www.ajaxload.info/</a>
        </p>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=479d2965-83cd-4c72-84cb-96f9e6aed09b" />
      </body>
      <title>Make your own AJAX &amp;quot;loading&amp;quot; icons</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,479d2965-83cd-4c72-84cb-96f9e6aed09b.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,479d2965-83cd-4c72-84cb-96f9e6aed09b.aspx</link>
      <pubDate>Wed, 07 May 2008 17:41:45 GMT</pubDate>
      <description>&lt;p&gt;
&lt;br /&gt;
&lt;a title="http://www.ajaxload.info/" href="http://www.ajaxload.info/"&gt;http://www.ajaxload.info/&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=479d2965-83cd-4c72-84cb-96f9e6aed09b" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,479d2965-83cd-4c72-84cb-96f9e6aed09b.aspx</comments>
      <category>Javascript/AJAX</category>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=8e3875dd-09a9-4b1c-b825-902a9ca90311</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,8e3875dd-09a9-4b1c-b825-902a9ca90311.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,8e3875dd-09a9-4b1c-b825-902a9ca90311.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=8e3875dd-09a9-4b1c-b825-902a9ca90311</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
        </p>
        <pre class="csharpcode">
          <br />
SELECT ORDINAL_POSITION , COLUMN_NAME , DATA_TYPE , CHARACTER_MAXIMUM_LENGTH , IS_NULLABLE
, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = <span class="str">'MyAwesomeTable'</span> ORDER
BY ORDINAL_POSITION ASC; </pre>
        <pre class="csharpcode">Another method is</pre>
        <pre class="csharpcode">sp_help <span class="str">'tablename'</span></pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <pre class="csharpcode"> </pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=8e3875dd-09a9-4b1c-b825-902a9ca90311" />
      </body>
      <title>Getting column information using T-SQL</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,8e3875dd-09a9-4b1c-b825-902a9ca90311.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,8e3875dd-09a9-4b1c-b825-902a9ca90311.aspx</link>
      <pubDate>Wed, 30 Apr 2008 18:25:42 GMT</pubDate>
      <description>&lt;p&gt;
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;
&lt;br&gt;
SELECT ORDINAL_POSITION , COLUMN_NAME , DATA_TYPE , CHARACTER_MAXIMUM_LENGTH , IS_NULLABLE
, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = &lt;span class="str"&gt;'MyAwesomeTable'&lt;/span&gt; ORDER
BY ORDINAL_POSITION ASC; &lt;/pre&gt;
&lt;pre class="csharpcode"&gt;Another method is&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;sp_help &lt;span class="str"&gt;'tablename'&lt;/span&gt; &lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=8e3875dd-09a9-4b1c-b825-902a9ca90311" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,8e3875dd-09a9-4b1c-b825-902a9ca90311.aspx</comments>
      <category>Database;SQL</category>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=ab81a511-25ef-490e-a528-47c83dc03a0d</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,ab81a511-25ef-490e-a528-47c83dc03a0d.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,ab81a511-25ef-490e-a528-47c83dc03a0d.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=ab81a511-25ef-490e-a528-47c83dc03a0d</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In the previous example, <a href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx">Using
a Timer Control With an Update Panel</a>, we just refreshed a panel from data in a
list.  In this more practical example, we pull the data from a live database
which refreshes an UpdatePanel and an AJAX script manager.  Here is <a href="http://www.stonecoastwebdesign.com/code/unleashed35/TimerMessagesAJAX.aspx">a
working demo</a>.<br /></p>
        <pre class="csharpcode">&lt;%@ Page Language=<span class="str">"vb"</span> %&gt;
&lt;!DOCTYPE html <span class="kwrd">PUBLIC</span><span class="str">"-//W3C//DTD
XHTML 1.0 Transitional//EN"</span><span class="str">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>&gt;
&lt;html xmlns=<span class="str">"http://www.w3.org/1999/xhtml"</span>&gt; &lt;head
id=<span class="str">"Head1"</span> runat=<span class="str">"server"</span>&gt; &lt;title&gt;Timer
Movies&lt;/title&gt; &lt;style type=<span class="str">"text/css"</span>&gt; .message
{ margin-left: 20px; font-style:italic; } &lt;/style&gt; &lt;/head&gt; &lt;body&gt;
&lt;form id=<span class="str">"form1"</span> runat=<span class="str">"server"</span>&gt;
&lt;asp:ScriptManager ID=<span class="str">"sm1"</span> runat=<span class="str">"server"</span> /&gt;
&lt;asp:Timer ID=<span class="str">"Timer1"</span> Interval=<span class="str">"5000"</span> runat=<span class="str">"server"</span> /&gt;
&lt;asp:UpdatePanel ID=<span class="str">"up1"</span> runat=<span class="str">"server"</span>&gt;
&lt;Triggers&gt; &lt;asp:AsyncPostBackTrigger ControlID=<span class="str">"Timer1"</span> EventName=<span class="str">"Tick"</span> /&gt;
&lt;/Triggers&gt; &lt;ContentTemplate&gt; Last Refresh &lt;%= DateTime.Now.ToString(<span class="str">"T"</span>)
%&gt;&lt;hr /&gt; &lt;asp:ListView id=<span class="str">"lstMovies"</span> DataSourceID=<span class="str">"srcMovies"</span> Runat=<span class="str">"server"</span>&gt;
&lt;LayoutTemplate&gt; &lt;div id=<span class="str">"itemPlaceholder"</span> runat=<span class="str">"server"</span>&gt;
&lt;/div&gt; &lt;/LayoutTemplate&gt; &lt;ItemTemplate&gt; &lt;div&gt; Movie Title:
&lt;%# Eval(<span class="str">"Title"</span>) %&gt;&lt;div <span class="kwrd">class</span>=<span class="str">"message"</span>&gt;
Director: &lt;%# Eval(<span class="str">"Director"</span>) %&gt;&lt;/div&gt; &lt;/div&gt;
&lt;/ItemTemplate&gt; &lt;/asp:ListView&gt; &lt;/ContentTemplate&gt; &lt;/asp:UpdatePanel&gt;
&lt;asp:ObjectDataSource id=<span class="str">"srcMovies"</span> TypeName=<span class="str">"Message"</span> SelectMethod=<span class="str">"Select"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;/form&gt; &lt;/body&gt; &lt;/html&gt; 
<br /></pre>
        <pre class="csharpcode">
          <strong>*** Message.vb ***</strong>
        </pre>
        <pre class="csharpcode">
          <span class="kwrd">Imports</span> System <span class="kwrd">Imports</span> System.Collections <span class="kwrd">Imports</span> System.Data <span class="kwrd">Imports</span> System.Data.SqlClient <span class="kwrd">Imports</span> System.Web.Configuration <span class="kwrd">Public</span><span class="kwrd">Class</span> Message <span class="kwrd">Private</span> _Title <span class="kwrd">As</span><span class="kwrd">String</span><span class="kwrd">Public</span><span class="kwrd">Property</span> Title() <span class="kwrd">As</span><span class="kwrd">String</span><span class="kwrd">Get</span><span class="kwrd">Return</span> _Title <span class="kwrd">End</span><span class="kwrd">Get</span><span class="kwrd">Set</span>(<span class="kwrd">ByVal</span> value <span class="kwrd">As</span><span class="kwrd">String</span>)
_Title = value <span class="kwrd">End</span><span class="kwrd">Set</span><span class="kwrd">End</span><span class="kwrd">Property</span><span class="kwrd">Private</span> _Director <span class="kwrd">As</span><span class="kwrd">String</span><span class="kwrd">Public</span><span class="kwrd">Property</span> Director() <span class="kwrd">As</span><span class="kwrd">String</span><span class="kwrd">Get</span><span class="kwrd">Return</span> _Director <span class="kwrd">End</span><span class="kwrd">Get</span><span class="kwrd">Set</span>(<span class="kwrd">ByVal</span> value <span class="kwrd">As</span><span class="kwrd">String</span>)
_Director = value <span class="kwrd">End</span><span class="kwrd">Set</span><span class="kwrd">End</span><span class="kwrd">Property</span><span class="kwrd">Public</span><span class="kwrd">Shared</span><span class="kwrd">Function</span> [<span class="kwrd">Select</span>]() <span class="kwrd">As</span> ArrayList <span class="kwrd">Dim</span> results <span class="kwrd">As</span><span class="kwrd">New</span> ArrayList() <span class="kwrd">Dim</span> conString <span class="kwrd">As</span><span class="kwrd">String</span> =
WebConfigurationManager.ConnectionStrings(<span class="str">"MyDatabase"</span>).ConnectionString <span class="kwrd">Dim</span> commandText <span class="kwrd">As</span><span class="kwrd">String</span> = <span class="str">"SELECT
Title, Director FROM Movies ORDER BY Id DESC"</span><span class="kwrd">Dim</span> con <span class="kwrd">As</span><span class="kwrd">New</span> SqlConnection(conString) <span class="kwrd">Dim</span> cmd <span class="kwrd">As</span><span class="kwrd">New</span> SqlCommand(commandText,
con) Using con con.Open() <span class="kwrd">Dim</span> reader <span class="kwrd">As</span> SqlDataReader
= cmd.ExecuteReader() <span class="kwrd">While</span> reader.Read() results.Add(<span class="kwrd">New</span> Message(reader)) <span class="kwrd">End</span><span class="kwrd">While</span><span class="kwrd">End</span> Using <span class="kwrd">Return</span> results <span class="kwrd">End</span><span class="kwrd">Function</span><span class="kwrd">Public</span><span class="kwrd">Sub</span><span class="kwrd">New</span>(<span class="kwrd">ByVal</span> reader <span class="kwrd">As</span> SqlDataReader)
Title = <span class="kwrd">CType</span>(reader(<span class="str">"Title"</span>), <span class="kwrd">String</span>)
Director = <span class="kwrd">CType</span>(reader(<span class="str">"Director"</span>), <span class="kwrd">String</span>) <span class="kwrd">End</span><span class="kwrd">Sub</span><span class="kwrd">End</span> Class</pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <pre class="csharpcode"> </pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=ab81a511-25ef-490e-a528-47c83dc03a0d" />
      </body>
      <title>Using the Timer Control With an UpdatePanel - Part 2.</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,ab81a511-25ef-490e-a528-47c83dc03a0d.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,ab81a511-25ef-490e-a528-47c83dc03a0d.aspx</link>
      <pubDate>Tue, 29 Apr 2008 16:49:27 GMT</pubDate>
      <description>&lt;p&gt;
In the previous example, &lt;a href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx"&gt;Using
a Timer Control With an Update Panel&lt;/a&gt;, we just refreshed a panel from data in a
list.&amp;nbsp; In this more practical example, we pull the data from a live database
which refreshes an UpdatePanel and an AJAX script manager.&amp;nbsp; Here is &lt;a href="http://www.stonecoastwebdesign.com/code/unleashed35/TimerMessagesAJAX.aspx"&gt;a
working demo&lt;/a&gt;.&lt;br&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Page Language=&lt;span class="str"&gt;"vb"&lt;/span&gt; %&amp;gt; &amp;lt;!DOCTYPE
html &lt;span class="kwrd"&gt;PUBLIC&lt;/span&gt; &lt;span class="str"&gt;"-//W3C//DTD XHTML 1.0 Transitional//EN"&lt;/span&gt; &lt;span class="str"&gt;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&amp;gt;
&amp;lt;html xmlns=&lt;span class="str"&gt;"http://www.w3.org/1999/xhtml"&lt;/span&gt;&amp;gt; &amp;lt;head
id=&lt;span class="str"&gt;"Head1"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt;&amp;gt; &amp;lt;title&amp;gt;Timer
Movies&amp;lt;/title&amp;gt; &amp;lt;style type=&lt;span class="str"&gt;"text/css"&lt;/span&gt;&amp;gt; .message
{ margin-left: 20px; font-style:italic; } &amp;lt;/style&amp;gt; &amp;lt;/head&amp;gt; &amp;lt;body&amp;gt;
&amp;lt;form id=&lt;span class="str"&gt;"form1"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt;&amp;gt;
&amp;lt;asp:ScriptManager ID=&lt;span class="str"&gt;"sm1"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt; /&amp;gt;
&amp;lt;asp:Timer ID=&lt;span class="str"&gt;"Timer1"&lt;/span&gt; Interval=&lt;span class="str"&gt;"5000"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt; /&amp;gt;
&amp;lt;asp:UpdatePanel ID=&lt;span class="str"&gt;"up1"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt;&amp;gt;
&amp;lt;Triggers&amp;gt; &amp;lt;asp:AsyncPostBackTrigger ControlID=&lt;span class="str"&gt;"Timer1"&lt;/span&gt; EventName=&lt;span class="str"&gt;"Tick"&lt;/span&gt; /&amp;gt;
&amp;lt;/Triggers&amp;gt; &amp;lt;ContentTemplate&amp;gt; Last Refresh &amp;lt;%= DateTime.Now.ToString(&lt;span class="str"&gt;"T"&lt;/span&gt;)
%&amp;gt;&amp;lt;hr /&amp;gt; &amp;lt;asp:ListView id=&lt;span class="str"&gt;"lstMovies"&lt;/span&gt; DataSourceID=&lt;span class="str"&gt;"srcMovies"&lt;/span&gt; Runat=&lt;span class="str"&gt;"server"&lt;/span&gt;&amp;gt;
&amp;lt;LayoutTemplate&amp;gt; &amp;lt;div id=&lt;span class="str"&gt;"itemPlaceholder"&lt;/span&gt; runat=&lt;span class="str"&gt;"server"&lt;/span&gt;&amp;gt;
&amp;lt;/div&amp;gt; &amp;lt;/LayoutTemplate&amp;gt; &amp;lt;ItemTemplate&amp;gt; &amp;lt;div&amp;gt; Movie Title:
&amp;lt;%# Eval(&lt;span class="str"&gt;"Title"&lt;/span&gt;) %&amp;gt;&amp;lt;div &lt;span class="kwrd"&gt;class&lt;/span&gt;=&lt;span class="str"&gt;"message"&lt;/span&gt;&amp;gt;
Director: &amp;lt;%# Eval(&lt;span class="str"&gt;"Director"&lt;/span&gt;) %&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;/div&amp;gt;
&amp;lt;/ItemTemplate&amp;gt; &amp;lt;/asp:ListView&amp;gt; &amp;lt;/ContentTemplate&amp;gt; &amp;lt;/asp:UpdatePanel&amp;gt;
&amp;lt;asp:ObjectDataSource id=&lt;span class="str"&gt;"srcMovies"&lt;/span&gt; TypeName=&lt;span class="str"&gt;"Message"&lt;/span&gt; SelectMethod=&lt;span class="str"&gt;"Select"&lt;/span&gt; Runat=&lt;span class="str"&gt;"server"&lt;/span&gt; /&amp;gt;
&amp;lt;/form&amp;gt; &amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt; 
&lt;br&gt;
&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;strong&gt;*** Message.vb ***&lt;/strong&gt;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;Imports&lt;/span&gt; System &lt;span class="kwrd"&gt;Imports&lt;/span&gt; System.Collections &lt;span class="kwrd"&gt;Imports&lt;/span&gt; System.Data &lt;span class="kwrd"&gt;Imports&lt;/span&gt; System.Data.SqlClient &lt;span class="kwrd"&gt;Imports&lt;/span&gt; System.Web.Configuration &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Class&lt;/span&gt; Message &lt;span class="kwrd"&gt;Private&lt;/span&gt; _Title &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; Title() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Return&lt;/span&gt; _Title &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt;(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; value &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;)
_Title = value &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Private&lt;/span&gt; _Director &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; Director() &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Return&lt;/span&gt; _Director &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Get&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt;(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; value &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt;)
_Director = value &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Set&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Property&lt;/span&gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Shared&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; [&lt;span class="kwrd"&gt;Select&lt;/span&gt;]() &lt;span class="kwrd"&gt;As&lt;/span&gt; ArrayList &lt;span class="kwrd"&gt;Dim&lt;/span&gt; results &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; ArrayList() &lt;span class="kwrd"&gt;Dim&lt;/span&gt; conString &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; =
WebConfigurationManager.ConnectionStrings(&lt;span class="str"&gt;"MyDatabase"&lt;/span&gt;).ConnectionString &lt;span class="kwrd"&gt;Dim&lt;/span&gt; commandText &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;String&lt;/span&gt; = &lt;span class="str"&gt;"SELECT
Title, Director FROM Movies ORDER BY Id DESC"&lt;/span&gt; &lt;span class="kwrd"&gt;Dim&lt;/span&gt; con &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlConnection(conString) &lt;span class="kwrd"&gt;Dim&lt;/span&gt; cmd &lt;span class="kwrd"&gt;As&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt; SqlCommand(commandText,
con) Using con con.Open() &lt;span class="kwrd"&gt;Dim&lt;/span&gt; reader &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlDataReader
= cmd.ExecuteReader() &lt;span class="kwrd"&gt;While&lt;/span&gt; reader.Read() results.Add(&lt;span class="kwrd"&gt;New&lt;/span&gt; Message(reader)) &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;While&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; Using &lt;span class="kwrd"&gt;Return&lt;/span&gt; results &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Function&lt;/span&gt; &lt;span class="kwrd"&gt;Public&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &lt;span class="kwrd"&gt;New&lt;/span&gt;(&lt;span class="kwrd"&gt;ByVal&lt;/span&gt; reader &lt;span class="kwrd"&gt;As&lt;/span&gt; SqlDataReader)
Title = &lt;span class="kwrd"&gt;CType&lt;/span&gt;(reader(&lt;span class="str"&gt;"Title"&lt;/span&gt;), &lt;span class="kwrd"&gt;String&lt;/span&gt;)
Director = &lt;span class="kwrd"&gt;CType&lt;/span&gt;(reader(&lt;span class="str"&gt;"Director"&lt;/span&gt;), &lt;span class="kwrd"&gt;String&lt;/span&gt;) &lt;span class="kwrd"&gt;End&lt;/span&gt; &lt;span class="kwrd"&gt;Sub&lt;/span&gt; &lt;span class="kwrd"&gt;End&lt;/span&gt; Class&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;pre class="csharpcode"&gt;&amp;nbsp;&lt;/pre&gt;
&lt;style type="text/css"&gt;.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=ab81a511-25ef-490e-a528-47c83dc03a0d" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,ab81a511-25ef-490e-a528-47c83dc03a0d.aspx</comments>
      <category>ASP.NET;Javascript/AJAX</category>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=f2d0b569-30d6-46ae-b531-88850c095ba3</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=f2d0b569-30d6-46ae-b531-88850c095ba3</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
This is an interesting example on how to use the Timer control inside of an UpdatePanel
to refresh part of a page with no user intervention.   Here is a <a href="http://www.stonecoastwebdesign.com/code/unleashed35/TimerQuoteAJAX.aspx">working
demo</a>. 
</p>
        <pre class="csharpcode">&lt;%@ Page Language=<span class="str">"VB"</span> %&gt;
&lt;%@ Import <span class="kwrd">Namespace</span>=<span class="str">"System.Collections.Generic"</span> %&gt;
&lt;!DOCTYPE html <span class="kwrd">PUBLIC</span><span class="str">"-//W3C//DTD
XHTML 1.0 Transitional//EN"</span><span class="str">"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"</span>&gt;
&lt;script runat=<span class="str">"server"</span>&gt; <span class="kwrd">protected</span><span class="kwrd">sub</span> Page_Load(sender <span class="kwrd">as</span><span class="kwrd">object</span>,
e <span class="kwrd">as</span> EventArgs) <span class="kwrd">dim</span> quotes <span class="kwrd">as</span><span class="kwrd">new</span> List(of <span class="kwrd">string</span>)()
quotes.Add(<span class="str">"A fool and his money are soon parted"</span>)
quotes.Add(<span class="str">"A penny saved is a penny earned"</span>) quotes.Add(<span class="str">"An
apple a day keeps the doctor away"</span>) <span class="kwrd">dim</span> rnd <span class="kwrd">as</span><span class="kwrd">new</span> Random()
lblQuote.Text = quotes(rnd.<span class="kwrd">Next</span>(quotes.Count)) <span class="kwrd">end</span><span class="kwrd">sub</span> &lt;/script&gt;
&lt;html xmlns=<span class="str">"http://www.w3.org/1999/xhtml"</span>&gt;
&lt;head id=<span class="str">"Head1"</span> runat=<span class="str">"server"</span>&gt;
&lt;title&gt;Timer Quote&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;form id=<span class="str">"form1"</span> runat=<span class="str">"server"</span>&gt;
&lt;div&gt; &lt;asp:ScriptManager ID=<span class="str">"ScriptManager1"</span> runat=<span class="str">"server"</span> /&gt;
&lt;asp:Timer ID=<span class="str">"Timer1"</span> Interval=<span class="str">"2000"</span> runat=<span class="str">"server"</span> /&gt;
Page Time: &lt;%= DateTime.Now.ToString(<span class="str">"T"</span>) %&gt;
&lt;fieldset&gt; &lt;legend&gt;Quote&lt;/legend&gt; &lt;asp:UpdatePanel ID=<span class="str">"up1"</span> runat=<span class="str">"server"</span>&gt;
&lt;Triggers&gt; &lt;asp:AsyncPostBackTrigger ControlID=<span class="str">"Timer1"</span> EventName=<span class="str">"Tick"</span> /&gt;
&lt;/Triggers&gt; &lt;ContentTemplate&gt; &lt;asp:Label ID=<span class="str">"lblQuote"</span> runat=<span class="str">"server"</span> /&gt;
&lt;/ContentTemplate&gt; &lt;/asp:UpdatePanel&gt; &lt;/fieldset&gt; &lt;/div&gt; &lt;/form&gt;
&lt;/body&gt; &lt;/html&gt;</pre>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <style type="text/css">
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=f2d0b569-30d6-46ae-b531-88850c095ba3" />
      </body>
      <title>Using the Timer Control With an UpdatePanel</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx</link>
      <pubDate>Tue, 29 Apr 2008 14:55:25 GMT</pubDate>
      <description>&lt;p&gt;
This is an interesting example on how to use the Timer control inside of an UpdatePanel
to refresh part of a page with no user intervention.&amp;#160;&amp;#160; Here is a &lt;a href="http://www.stonecoastwebdesign.com/code/unleashed35/TimerQuoteAJAX.aspx"&gt;working
demo&lt;/a&gt;. 
&lt;/p&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;%@ Page Language=&lt;span class="str"&gt;&amp;quot;VB&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;%@ Import &lt;span class="kwrd"&gt;Namespace&lt;/span&gt;=&lt;span class="str"&gt;&amp;quot;System.Collections.Generic&amp;quot;&lt;/span&gt; %&amp;gt;
&amp;lt;!DOCTYPE html &lt;span class="kwrd"&gt;PUBLIC&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;-//W3C//DTD
XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;span class="str"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;script runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt; &lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;sub&lt;/span&gt; Page_Load(sender &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;object&lt;/span&gt;,
e &lt;span class="kwrd"&gt;as&lt;/span&gt; EventArgs) &lt;span class="kwrd"&gt;dim&lt;/span&gt; quotes &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; List(of &lt;span class="kwrd"&gt;string&lt;/span&gt;)()
quotes.Add(&lt;span class="str"&gt;&amp;quot;A fool and his money are soon parted&amp;quot;&lt;/span&gt;)
quotes.Add(&lt;span class="str"&gt;&amp;quot;A penny saved is a penny earned&amp;quot;&lt;/span&gt;) quotes.Add(&lt;span class="str"&gt;&amp;quot;An
apple a day keeps the doctor away&amp;quot;&lt;/span&gt;) &lt;span class="kwrd"&gt;dim&lt;/span&gt; rnd &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; Random()
lblQuote.Text = quotes(rnd.&lt;span class="kwrd"&gt;Next&lt;/span&gt;(quotes.Count)) &lt;span class="kwrd"&gt;end&lt;/span&gt; &lt;span class="kwrd"&gt;sub&lt;/span&gt; &amp;lt;/script&amp;gt;
&amp;lt;html xmlns=&lt;span class="str"&gt;&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;head id=&lt;span class="str"&gt;&amp;quot;Head1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;title&amp;gt;Timer Quote&amp;lt;/title&amp;gt; &amp;lt;/head&amp;gt; &amp;lt;body&amp;gt; &amp;lt;form id=&lt;span class="str"&gt;&amp;quot;form1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;div&amp;gt; &amp;lt;asp:ScriptManager ID=&lt;span class="str"&gt;&amp;quot;ScriptManager1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;asp:Timer ID=&lt;span class="str"&gt;&amp;quot;Timer1&amp;quot;&lt;/span&gt; Interval=&lt;span class="str"&gt;&amp;quot;2000&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
Page Time: &amp;lt;%= DateTime.Now.ToString(&lt;span class="str"&gt;&amp;quot;T&amp;quot;&lt;/span&gt;) %&amp;gt;
&amp;lt;fieldset&amp;gt; &amp;lt;legend&amp;gt;Quote&amp;lt;/legend&amp;gt; &amp;lt;asp:UpdatePanel ID=&lt;span class="str"&gt;&amp;quot;up1&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt;&amp;gt;
&amp;lt;Triggers&amp;gt; &amp;lt;asp:AsyncPostBackTrigger ControlID=&lt;span class="str"&gt;&amp;quot;Timer1&amp;quot;&lt;/span&gt; EventName=&lt;span class="str"&gt;&amp;quot;Tick&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;/Triggers&amp;gt; &amp;lt;ContentTemplate&amp;gt; &amp;lt;asp:Label ID=&lt;span class="str"&gt;&amp;quot;lblQuote&amp;quot;&lt;/span&gt; runat=&lt;span class="str"&gt;&amp;quot;server&amp;quot;&lt;/span&gt; /&amp;gt;
&amp;lt;/ContentTemplate&amp;gt; &amp;lt;/asp:UpdatePanel&amp;gt; &amp;lt;/fieldset&amp;gt; &amp;lt;/div&amp;gt; &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt; &amp;lt;/html&amp;gt;&lt;/pre&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;
&lt;img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=f2d0b569-30d6-46ae-b531-88850c095ba3" /&gt;</description>
      <comments>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx</comments>
      <category>ASP.NET;Javascript/AJAX</category>
    </item>
    <item>
      <trackback:ping>http://www.stonecoastwebdesign.com/dasblogce/Trackback.aspx?guid=5229a913-3fb0-4e5f-ae38-5bba20389332</trackback:ping>
      <pingback:server>http://www.stonecoastwebdesign.com/dasblogce/pingback.aspx</pingback:server>
      <pingback:target>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,5229a913-3fb0-4e5f-ae38-5bba20389332.aspx</pingback:target>
      <dc:creator>Your DisplayName here!</dc:creator>
      <wfw:comment>http://www.stonecoastwebdesign.com/dasblogce/CommentView,guid,5229a913-3fb0-4e5f-ae38-5bba20389332.aspx</wfw:comment>
      <wfw:commentRss>http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetEntryCommentsRss?guid=5229a913-3fb0-4e5f-ae38-5bba20389332</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
The web.config file is commonly used to add database connection strings, mail server
settings, system-wide settings etc.  It's easier to store such settings here
rather than hard-code them within the pages for obvious reasons. Adding custom key/value
pairs in the web.config is pretty easy. Just make sure that the &lt;appSettings&gt;
section is outside of the &lt;system.web&gt; section. 
</p>
        <p>
&lt;configuration&gt;
</p>
        <pre class="csharpcode">&lt;appSettings&gt;
      &lt;add key=<span class="str">"myCity"</span><span class="kwrd">value</span>=<span class="str">"Anchorage"</span> /&gt;
&lt;/appSettings&gt;</pre>
        <pre class="csharpcode">&lt;system.web&gt;</pre>
        <pre class="csharpcode">....</pre>
        <pre class="csharpcode">&lt;/system.web&gt;</pre>
        <p>
        </p>
        <p>
 
</p>
        <p>
This key/value is accessed in your application like this: 
</p>
        <pre class="csharpcode">Public Sub Page_Load()
         Dim strCity As String
         strCity = ConfigurationSettings.AppSettings(<span class="str">"myCity"</span>)<br />
End Sub </pre>
        <p>
        </p>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <p>
Another way to return a custom key's value is to pass the key name to a function. 
This function also adds the key name and value to cache if it's not already there
</p>
        <pre class="csharpcode">
          <span class="str">'Return the value of the specified custom
key, stored in the Web.Config file. '</span> If the <span class="kwrd">value</span> has
been already requested before, the function returns its <span class="str">' cached
value. '</span> The second optional parameter <span class="kwrd">is</span> the path
of the Web.Config file <span class="kwrd">where</span><span class="kwrd">this</span><span class="str">'
custom key is stored, and it is necessary to add a dependency to that file, '</span> so
that the cached <span class="kwrd">value</span><span class="kwrd">is</span> discarded <span class="kwrd">if</span> the
file <span class="kwrd">is</span> edited. <span class="str">' '</span> Example: Dim
myCity = GetCustomKeyValue(<span class="str">"myCity"</span>) Function GetCustomKeyValue(ByVal
key As String, Optional ByVal webConfigUrl As String = <span class="str">"/Web.Config"</span>)
As String <span class="str">' if this is not the first time this value is needed,
'</span> we can find it <span class="kwrd">in</span> the cache Dim <span class="kwrd">value</span> As
String = CType(HttpContext.Current.Cache(key), String) <span class="str">' if the
retrieved string is empty, the value is not present into the cache, '</span> thus
it <span class="kwrd">is</span> retrieved it from Web.Config, and then cached If <span class="kwrd">value</span> Is
Nothing OrElse <span class="kwrd">value</span> = <span class="str">""</span> Then <span class="kwrd">value</span> =
ConfigurationSettings.AppSettings(key) HttpContext.Current.Cache.Insert(key, <span class="kwrd">value</span>,
New Caching.CacheDependency(webConfigUrl)) End If Return <span class="kwrd">value</span> End
Function</pre>
        <pre class="csharpcode">
        </pre>
        <p>
Lastly, ASP.NET 2.0 makes it really easy to encrypt parts of the web.config to secure
sensitive parts of the file. Here are some articles on how to do it.
</p>
        <p>
          <a title="http://odetocode.com/Blogs/scott/archive/2006/01/08/2707.aspx" href="http://odetocode.com/Blogs/scott/archive/2006/01/08/2707.aspx">http://odetocode.com/Blogs/scott/archive/2006/01/08/2707.aspx</a>
        </p>
        <p>
          <a title="http://www.developerfusion.co.uk/show/5263/" href="http://www.developerfusion.co.uk/show/5263/">http://www.developerfusion.co.uk/show/5263/</a>
        </p>
        <p>
          <a title="http://channel9.msdn.com/Showpost.aspx?postid=134210" href="http://channel9.msdn.com/Showpost.aspx?postid=134210">http://channel9.msdn.com/Showpost.aspx?postid=134210</a>
          <br />
        </p>
        <p>
Not only can you encrypt config sections using aspnet_regiis from the command line,
but you can also encrypt and unencrypt Web.config on the fly in code. The code for
protecting and unprotecting sections in your Web.config is fairly trivial, because
WebConfigurationManager-related classes handle all the work for you.  I added
two buttons to a web page, called btnProtect and btnUnProtect, to protect and unprotect
on the fly.  Here is the code of interest:
</p>
        <pre class="csharpcode">
          <span class="kwrd">Protected</span>
          <span class="kwrd">Sub</span> UnProtect_Click(<span class="kwrd">ByVal</span> sender <span class="kwrd">As</span><span class="kwrd">Object</span>, <span class="kwrd">ByVal</span> e <span class="kwrd">As</span> EventArgs)
UnProtectSection(<span class="str">"appSettings"</span>) <span class="kwrd">End</span><span class="kwrd">Sub</span><span class="kwrd">Protected</span><span class="kwrd">Sub</span> Protect_Click(<span class="kwrd">ByVal</span> sender <span class="kwrd">As</span><span class="kwrd">Object</span>, <span class="kwrd">ByVal</span> e <span class="kwrd">As</span> EventArgs)
ProtectSection(<span class="str">"appSettings"</span>, <span class="str">"DataProtectionConfigurationProvider"</span>) <span class="kwrd">End</span><span class="kwrd">Sub</span><span class="kwrd">Private</span><span class="kwrd">Sub</span> ProtectSection(<span class="kwrd">ByVal</span> sectionName <span class="kwrd">As</span><span class="kwrd">String</span>, <span class="kwrd">ByVal</span> provider <span class="kwrd">As</span><span class="kwrd">String</span>) <span class="kwrd">Dim</span> config <span class="kwrd">As</span> Configuration
= WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath) <span class="kwrd">Dim</span> section <span class="kwrd">As</span> ConfigurationSection
= config.GetSection(sectionName) <span class="kwrd">If</span> section IsNot <span class="kwrd">Nothing</span><span class="kwrd">AndAlso</span><span class="kwrd">Not</span> section.SectionInformation.IsProtected <span class="kwrd">Then</span> section.SectionInformation.ProtectSection(provider)
config.Save() <span class="kwrd">End</span><span class="kwrd">If</span><span class="kwrd">End</span><span class="kwrd">Sub</span><span class="kwrd">Private</span><span class="kwrd">Sub</span> UnProtectSection(<span class="kwrd">ByVal</span> sectionName <span class="kwrd">As</span><span class="kwrd">String</span>) <span class="kwrd">Dim</span> config <span class="kwrd">As</span> Configuration
= WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath) <span class="kwrd">Dim</span> section <span class="kwrd">As</span> ConfigurationSection
= config.GetSection(sectionName) <span class="kwrd">If</span> section IsNot <span class="kwrd">Nothing</span><span class="kwrd">AndAlso</span> section.SectionInformation.IsProtected <span class="kwrd">Then</span> section.SectionInformation.UnprotectSection()
config.Save() <span class="kwrd">End</span><span class="kwrd">If</span><span class="kwrd">End</span><span class="kwrd">Sub</span></pre>
        <pre class="csharpcode"> </pre>
        <p>
Here is what the application settings look like when encrypted:
</p>
        <pre>&lt;appSettings configProtectionProvider=
        "DataProtectionConfigurationProvider"&gt;
  &lt;EncryptedData&gt;
   &lt;CipherData&gt;
    &lt;CipherValue&gt;
        AQAAANCMnd8BFdERjHoAwE/Cl+sBAAA
        AXmrl4EN1VUSGDS9ZSSydRwQAAAACAA
        AAAAADZgAAqAAAABAAAAA280OtZlZwu
        D3U+ihvi2zpAAAAAASAAACgAAAAEAAA
        AJ6AnDzWM1o3osh/Y6fcYtwAAQAA1PR
        +wzfwgBgZ4y0yHU4uxaaMET13u21Bv3
        zVE7aA7Z5pCWAYs54LNLNYQ673kmzAL
        osWb7OMuzW6BPwMp18gKNQXOFSGNgA1
        ...
    &lt;/&lt; SPAN&gt;CipherValue&gt;
   &lt;/&lt; SPAN&gt;CipherData&gt;
  &lt;/&lt; SPAN&gt;EncryptedData&gt;
&lt;/&lt; SPAN&gt;appSettings&gt;</pre>
        <style type="text/css">.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }
</style>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=5229a913-3fb0-4e5f-ae38-5bba20389332" />
      </body>
      <title>Adding a Custom Key/Value Pair to Web.Config - Encrypting Sections of it</title>
      <guid isPermaLink="false">http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,5229a913-3fb0-4e5f-ae38-5bba20389332.aspx</guid>
      <link>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,5229a913-3fb0-4e5f-ae38-5bba20389332.aspx</link>
      <pubDate>Thu, 24 Apr 2008 14:14:46 GMT</pubDate>
      <description>&lt;p&gt;
The web.config file is commonly used to add database connection strings, mail server
settings, system-wide settings etc.&amp;nbsp; It's easier to store such settings here
rather than hard-code them within the pages for obvious reasons. Adding custom key/value
pairs in the web.config is pretty easy. Just make sure that the &amp;lt;appSettings&amp;gt;
section is outside of the &amp;lt;system.web&amp;gt; section. 
&lt;p&gt;
&amp;lt;configuration&amp;gt;&lt;pre class="csharpcode"&gt;&amp;lt;appSettings&amp;gt;
      &amp;lt;add key=&lt;span class="str"&gt;"myCity"&lt;/span&gt; &lt;span class="kwrd"&gt;value&lt;/span&gt;=&lt;span class="str"&gt;"Anchorage"&lt;/span&gt; /&amp;gt;
&amp;lt;/appSettings&amp;gt;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;system.web&amp;gt;&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;....&lt;/pre&gt;
&lt;pre class="csharpcode"&gt;&amp;lt;/system.web&amp;gt;&lt;/pre&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;