<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>Stone Coast Web Design's Weblog</title>
  <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/" />
  <link rel="self" href="http://www.stonecoastwebdesign.com/dasblogce/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2008-05-22T08:30:32.9670513-07:00</updated>
  <author>
    <name>Eric Van Buren</name>
  </author>
  <subtitle>Mostly Web Development</subtitle>
  <id>http://www.stonecoastwebdesign.com/dasblogce/</id>
  <generator uri="http://www.dasblog.net" version="1.9.6264.0">DasBlog</generator>
  <entry>
    <title>Login User Control</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,36cbe19e-a36f-4e30-b785-2edab67d747d.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,36cbe19e-a36f-4e30-b785-2edab67d747d.aspx</id>
    <published>2008-05-22T08:29:08.6863407-07:00</published>
    <updated>2008-05-22T08:30:32.9670513-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <category term="User Controls" label="User Controls" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,User%2BControls.aspx" />
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Exposing Events from a User Control</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f24e0c44-0a95-488c-a47b-0b87d34e8243.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f24e0c44-0a95-488c-a47b-0b87d34e8243.aspx</id>
    <published>2008-05-22T07:41:16.2515994-07:00</published>
    <updated>2008-05-22T08:06:27.0075555-07:00</updated>
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Check/Uncheck All Checkboxes in a GridView</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,7be4a603-8101-45fc-96e5-6ab9ae9c1606.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,7be4a603-8101-45fc-96e5-6ab9ae9c1606.aspx</id>
    <published>2008-05-14T06:22:37.1434252-07:00</published>
    <updated>2008-05-14T06:22:37.1434252-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <category term="Javascript/AJAX" label="Javascript/AJAX" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,Javascript%2fAJAX.aspx" />
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>User Controls</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,b97abe33-87f0-4861-b72c-d6afc8b3324a.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,b97abe33-87f0-4861-b72c-d6afc8b3324a.aspx</id>
    <published>2008-05-12T12:01:26.8522939-07:00</published>
    <updated>2008-05-12T12:01:26.8522939-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>A Styled GridView</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,be144ce3-5e3a-4321-9290-7cf5bba01d00.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,be144ce3-5e3a-4321-9290-7cf5bba01d00.aspx</id>
    <published>2008-05-07T10:43:11.3448649-07:00</published>
    <updated>2008-05-07T10:43:11.3448649-07:00</updated>
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Make your own AJAX &amp;quot;loading&amp;quot; icons</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,479d2965-83cd-4c72-84cb-96f9e6aed09b.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,479d2965-83cd-4c72-84cb-96f9e6aed09b.aspx</id>
    <published>2008-05-07T10:41:45.4391647-07:00</published>
    <updated>2008-05-07T10:41:45.4391647-07:00</updated>
    <category term="Javascript/AJAX" label="Javascript/AJAX" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,Javascript%2fAJAX.aspx" />
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Getting column information using T-SQL</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,8e3875dd-09a9-4b1c-b825-902a9ca90311.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,8e3875dd-09a9-4b1c-b825-902a9ca90311.aspx</id>
    <published>2008-04-30T11:25:42.5396623-07:00</published>
    <updated>2008-04-30T11:25:42.5396623-07:00</updated>
    <category term="Database" label="Database" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,Database.aspx" />
    <category term="SQL" label="SQL" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,SQL.aspx" />
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Using the Timer Control With an UpdatePanel - Part 2.</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,ab81a511-25ef-490e-a528-47c83dc03a0d.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,ab81a511-25ef-490e-a528-47c83dc03a0d.aspx</id>
    <published>2008-04-29T09:49:27.0565527-07:00</published>
    <updated>2008-04-29T10:15:28.562184-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <category term="Javascript/AJAX" label="Javascript/AJAX" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,Javascript%2fAJAX.aspx" />
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Using the Timer Control With an UpdatePanel</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,f2d0b569-30d6-46ae-b531-88850c095ba3.aspx</id>
    <published>2008-04-29T07:55:25.7097126-07:00</published>
    <updated>2008-04-29T08:20:09.4345917-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <category term="Javascript/AJAX" label="Javascript/AJAX" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,Javascript%2fAJAX.aspx" />
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Adding a Custom Key/Value Pair to Web.Config - Encrypting Sections of it</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,5229a913-3fb0-4e5f-ae38-5bba20389332.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,5229a913-3fb0-4e5f-ae38-5bba20389332.aspx</id>
    <published>2008-04-24T07:14:46.694591-07:00</published>
    <updated>2008-04-24T07:14:46.694591-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <content type="xhtml">
      <div 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" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Biking in PEI</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,c3ddc415-b2e4-4c3c-9c27-80c9d282b43a.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,c3ddc415-b2e4-4c3c-9c27-80c9d282b43a.aspx</id>
    <published>2008-04-23T10:31:12.3365201-07:00</published>
    <updated>2008-04-23T10:31:12.3365201-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <div class="wlWriterSmartContent" id="scid:8747F07C-CDE8-481f-B0DF-C6CFD074BF67:283e694c-2a4d-4e45-8bf6-0e0cede60dd5" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">
          <a href="http://www.stonecoastwebdesign.com/dasblogce/content/binary/WindowsLiveWriter/BikinginPEI_BE1C/185650022_Aq7Kn-L-8x6.jpg" title="" rel="thumbnail">
            <img border="0" src="http://www.stonecoastwebdesign.com/dasblogce/content/binary/WindowsLiveWriter/BikinginPEI_BE1C/185650022_Aq7Kn-L.png" />
          </a>
        </div>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=c3ddc415-b2e4-4c3c-9c27-80c9d282b43a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Cascading Dropdown Boxes with AJAX</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,628d634f-532d-4616-a544-b09bebf96c5a.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,628d634f-532d-4616-a544-b09bebf96c5a.aspx</id>
    <published>2008-04-23T10:28:28.3219448-07:00</published>
    <updated>2008-04-23T11:45:33.4642187-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <category term="Javascript/AJAX" label="Javascript/AJAX" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,Javascript%2fAJAX.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
Making the selections in a dropdownbox dependent upon the selected item in another
one is a pretty simple task. Here is a <a href="http://www.stonecoastwebdesign.com/code/unleashed35/CascadingDropDown.AJAX.aspx" target="_blank">working
demo</a>. 
</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;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;Cascading DropDownList Controls With AJAX&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">"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:Label id=<span class="str">"lblTitle"</span> Text=<span class="str">"Title:"</span> AssociatedControlID=<span class="str">"ddlTitle"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:DropDownList id=<span class="str">"ddlTitle"</span> DataSourceID=<span class="str">"srcTitle"</span> DataTextField=<span class="str">"Title"</span> DataValueField=<span class="str">"Title"</span> AutoPostBack=<span class="str">"true"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:SqlDataSource id=<span class="str">"srcTitle"</span> ConnectionString=<span class="str">'&lt;%$
ConnectionStrings:MyDatabase %&gt;'</span> SelectCommand=<span class="str">"SELECT
Title FROM Movies ORDER BY Title"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;br /&gt;&lt;br /&gt; &lt;asp:Label id=<span class="str">"Label1"</span> Text=<span class="str">"Director:"</span> AssociatedControlID=<span class="str">"ddlDirector"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:DropDownList id=<span class="str">"ddlDirector"</span> DataSourceID=<span class="str">"srcDirector"</span> DataTextField=<span class="str">"Director"</span> AutoPostBack=<span class="str">"true"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:SqlDataSource id=<span class="str">"srcDirector"</span> ConnectionString=<span class="str">'&lt;%$
ConnectionStrings:MyDatabase %&gt;'</span> SelectCommand=<span class="str">"SELECT
Director FROM Movies WHERE Title=@Title ORDER BY Title"</span> Runat=<span class="str">"server"</span>&gt;
&lt;SelectParameters&gt; &lt;asp:ControlParameter Name=<span class="str">"Title"</span> ControlID=<span class="str">"ddlTitle"</span> /&gt;
&lt;/SelectParameters&gt; &lt;/asp:SqlDataSource&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>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=628d634f-532d-4616-a544-b09bebf96c5a" />
      </div>
    </content>
  </entry>
  <entry>
    <title>LINQPad</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,c69c7cb6-19d7-4f30-8d0f-b6df1fd5d2ac.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,c69c7cb6-19d7-4f30-8d0f-b6df1fd5d2ac.aspx</id>
    <published>2008-04-23T06:35:17.8624628-07:00</published>
    <updated>2008-04-23T06:35:17.8624628-07:00</updated>
    <category term="LINQ" label="LINQ" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,LINQ.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I came across this cool product called <a href="http://linqpad.net/">LINQPad</a> which
is a free utility used to right LINQ queries in C# and VB.NET. 
</p>
        <p>
 
</p>
        <p>
 
</p>
        <p>
        </p>
        <img width="0" height="0" src="http://www.stonecoastwebdesign.com/dasblogce/aggbug.ashx?id=c69c7cb6-19d7-4f30-8d0f-b6df1fd5d2ac" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Getting a Record Count</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,4e4a8ba8-4400-49c1-8a3f-fd8e185c3d0d.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,4e4a8ba8-4400-49c1-8a3f-fd8e185c3d0d.aspx</id>
    <published>2008-04-21T12:53:36.552-07:00</published>
    <updated>2008-05-05T08:32:51.8275741-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <category term="Database" label="Database" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,Database.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
There are a lot of ways to grab the number of records returned in a dataset.  
This is one of my useful ones. Here is a <a href="http://www.stonecoastwebdesign.com/code/unleashed35/ShowMovieCount.aspx">working
demo</a>.
</p>
        <pre class="csharpcode">&lt;%@ Import Namespace=<span class="str">"System.Data"</span> %&gt;
&lt;%@ Import Namespace=<span class="str">"System.Data.SqlClient"</span> %&gt; &lt;%@
Import Namespace=<span class="str">"System.Web.Configuration"</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; Private Sub Page_Load() lblMovieCount.Text
= GetMovieCount().ToString() End Sub Private Function GetMovieCount() As Integer Dim
result As Integer = 0 <font color="#0000ff" size="3"><p>
        Dim
</p></font><font size="3"> con </font><font color="#0000ff" size="3">As</font><font size="3"></font><font color="#0000ff" size="3">New</font><font size="3"> SqlConnection(ConfigurationManager.ConnectionStrings(</font><font color="#a31515" size="3">"MyConnectionString"</font><font size="3">).ConnectionString)
</font> Dim cmd As New SqlCommand(<span class="str">"GetMovieCount"</span>, con) cmd.CommandType
= CommandType.StoredProcedure cmd.Parameters.Add(<span class="str">"@ReturnVal"</span>,
SqlDbType.Int).Direction = ParameterDirection.Output Using con con.Open() cmd.ExecuteNonQuery()
result = CType(cmd.Parameters(<span class="str">"@ReturnVal"</span>).Value, Integer)
End Using Return result End Function &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;Show Movie Count&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; There are &lt;asp:Label id=<span class="str">"lblMovieCount"</span> Runat=<span class="str">"server"</span> /&gt;
movies <span class="kwrd">in</span> the database. &lt;/div&gt; &lt;/form&gt; &lt;/body&gt;
&lt;/html&gt;<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>
        <p>
          <strong>GetMovieCount.sql</strong>
        </p>
        <pre class="csharpcode">
          <span class="kwrd">CREATE</span>
          <span class="kwrd">PROCEDURE</span> dbo.GetMovieCount <span class="rem">--
OUTPUT parameter to hold the count. </span> @ReturnVal <span class="kwrd">int</span><span class="kwrd">OUTPUT</span><span class="kwrd">AS</span><span class="rem">--
This will set @recordcount the the number of records returned by the SELECT query. </span><span class="kwrd">Set</span> @ReturnVal
= (<span class="kwrd">SELECT</span><span class="kwrd">COUNT</span>(*) <span class="kwrd">FROM</span> Movies)</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=4e4a8ba8-4400-49c1-8a3f-fd8e185c3d0d" />
      </div>
    </content>
  </entry>
  <entry>
    <title>SqlConnection.RetrieveStatistics()</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,51f9b05e-7358-47b5-a65e-07d797e67de3.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,51f9b05e-7358-47b5-a65e-07d797e67de3.aspx</id>
    <published>2008-04-21T11:28:00.5070374-07:00</published>
    <updated>2008-04-23T11:46:38.3544284-07:00</updated>
    <category term="Database" label="Database" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,Database.aspx" />
    <category term="SQL" label="SQL" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,SQL.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
The SqlConnection object has a new <strong>RetrieveStatistics</strong> method in .NET
2.0, which provides some interesting statistics that could come in handy while debugging
and performance tuning your .NET applications.  Normally statistics are turned
off by default, so you have to set <strong>StatisticsEnabled = true</strong> in order
for the SqlConnection object to begin collecting statistics.  Here is a <a href="http://www.stonecoastwebdesign.com/code/unleashed35/ShowAllStatistics.aspx" target="_blank">working
demo</a>.
</p>
        <pre class="csharpcode">&lt;%@ Page Language=<span class="str">"VB"</span> %&gt;
&lt;%@ Import Namespace=<span class="str">"System.Data.SqlClient"</span> %&gt;
&lt;%@ Import Namespace=<span class="str">"System.Web.Configuration"</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() Dim
connectionString As String = WebConfigurationManager.ConnectionStrings(<span class="str">"MyDatabase"</span>).ConnectionString
Dim con As New SqlConnection(connectionString) Dim cmd As New SqlCommand(<span class="str">"WAITFOR
DELAY '0:0:03';SELECT Title,Director FROM Movies"</span>, con) con.StatisticsEnabled
= True Using con con.Open() Dim reader As SqlDataReader = cmd.ExecuteReader() End
Using grdStats.DataSource = con.RetrieveStatistics() grdStats.DataBind() End Sub &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; td,th { padding:4px
20px; } &lt;/style&gt; &lt;title&gt;Show All Statistics&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;h1&gt;Connection Statistics&lt;/h1&gt; &lt;asp:GridView id=<span class="str">"grdStats"</span> AutoGenerateColumns=<span class="str">"false"</span> Runat=<span class="str">"server"</span>&gt;
&lt;Columns&gt; &lt;asp:BoundField DataField=<span class="str">"Key"</span> HeaderText=<span class="str">"Key"</span> /&gt;
&lt;asp:BoundField DataField=<span class="str">"Value"</span> HeaderText=<span class="str">"Value"</span> /&gt;
&lt;/Columns&gt; &lt;/asp:GridView&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=51f9b05e-7358-47b5-a65e-07d797e67de3" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Simple LINQ Search</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,c068419f-cda4-46f8-9e38-4a303dbddd88.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,c068419f-cda4-46f8-9e38-4a303dbddd88.aspx</id>
    <published>2008-04-18T12:49:10.1080835-07:00</published>
    <updated>2008-04-23T11:46:54.2762015-07:00</updated>
    <category term="LINQ" label="LINQ" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,LINQ.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e3d90ee1-5544-48d7-b3fd-a39722d80504" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px">Technorati
Tags: <a href="http://technorati.com/tags/Silverlight" rel="tag">Silverlight</a>,<a href="http://technorati.com/tags/ASP.NET" rel="tag">ASP.NET</a></div>
        <p>
          <br />
This is a simple example using LINQ to create a search form and display the results
in a Gridview. 
</p>
        <pre class="csharpcode">&lt;%@ Page Language=<span class="str">"VB"</span> %&gt;
&lt;%@ Import Namespace=<span class="str">"System.Web.Configuration"</span> %&gt;
&lt;%@ Import Namespace=<span class="str">"System.Linq"</span> %&gt; &lt;%@
Import Namespace=<span class="str">"System.Data.Linq"</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; 
<br /><br /><br /><br />
&lt;script runat=<span class="str">"server"</span>&gt; Sub btnSearch_Click(ByVal
sender As Object, ByVal e As EventArgs) Dim conString As String = WebConfigurationManager.ConnectionStrings(<span class="str">"MyDatabase"</span>).ConnectionString
Dim db As New DataContext(conString) Dim tMovie = db.GetTable(Of Movie)() grdMovies.DataSource
= tMovie.Where(Function(m) m.Director.Contains(txtDirector.Text)) grdMovies.DataBind()
End Sub &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;SearchMovies.aspx&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:Label id=<span class="str">"lblDirector"</span> Text=<span class="str">"Director:"</span> AssociatedControlID=<span class="str">"txtDirector"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:TextBox id=<span class="str">"txtDirector"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:Button id=<span class="str">"btnSearch"</span> Text=<span class="str">"Search"</span> OnClick=<span class="str">"btnSearch_Click"</span> Runat=<span class="str">"Server"</span> /&gt;
&lt;br /&gt;&lt;br /&gt; &lt;asp:GridView id=<span class="str">"grdMovies"</span> Runat=<span class="str">"server"</span> /&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=c068419f-cda4-46f8-9e38-4a303dbddd88" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Editing with a ListView</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,af04000b-cbf6-407b-96a8-38aaf225a844.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,af04000b-cbf6-407b-96a8-38aaf225a844.aspx</id>
    <published>2008-04-18T12:43:57.8132072-07:00</published>
    <updated>2008-04-18T12:43:57.8132072-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
Here is an example of how to edit records using a ListView.  A <a href="http://www.stonecoastwebdesign.com/code/unleashed35/ListView.Edit.aspx" target="_blank">working
example</a> is here.
</p>
        <blockquote>
          <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;style type=<span class="str">"text/css"</span>&gt; .movie { border:
solid 1px black; padding:5px; margin:3px; } .edit { background-color:lightyellow;
} &lt;/style&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;Edit ListView&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:ListView ID=<span class="str">"lstMovies"</span> DataSourceId=<span class="str">"srcMovies"</span> DataKeyNames=<span class="str">"Id"</span> runat=<span class="str">"server"</span>&gt;
&lt;LayoutTemplate&gt; &lt;asp:Placeholder id=<span class="str">"itemPlaceholder"</span> runat=<span class="str">"server"</span> /&gt;
&lt;/LayoutTemplate&gt; &lt;ItemTemplate&gt; &lt;div <span class="kwrd">class</span>=<span class="str">"movie"</span>&gt;
&lt;strong&gt;&lt;%# Eval(<span class="str">"Title"</span>) %&gt;&lt;/strong&gt;
&lt;br /&gt; &lt;em&gt;Directed by &lt;%# Eval(<span class="str">"Director"</span>)
%&gt;&lt;/em&gt; &lt;br /&gt; &lt;asp:LinkButton id=<span class="str">"lnkEdit"</span> Text=<span class="str">"{Edit}"</span> CommandName=<span class="str">"Edit"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:LinkButton id=<span class="str">"lnkDelete"</span> Text=<span class="str">"{Delete}"</span> CommandName=<span class="str">"Delete"</span> OnClientClick=<span class="str">"return
confirm('You can't delete movies')"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;/div&gt; &lt;/ItemTemplate&gt; &lt;EditItemTemplate&gt; &lt;div <span class="kwrd">class</span>=<span class="str">"movie
edit"</span>&gt; &lt;asp:Label id=<span class="str">"lblTitle"</span> Text=<span class="str">"Title:"</span> AssociatedControlID=<span class="str">"txtTitle"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;br /&gt; &lt;asp:TextBox id=<span class="str">"txtTitle"</span> Text=<span class="str">'&lt;%#
Bind("Title") %&gt;'</span> Runat=<span class="str">"server"</span> /&gt;
&lt;br /&gt;&lt;br /&gt; &lt;asp:Label id=<span class="str">"lblDirector"</span> Text=<span class="str">"Director:"</span> AssociatedControlID=<span class="str">"txtDirector"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;br /&gt; &lt;asp:TextBox id=<span class="str">"txtDirector"</span> Text=<span class="str">'&lt;%#
Bind("Director") %&gt;'</span> Runat=<span class="str">"server"</span> /&gt;
&lt;br /&gt;&lt;br /&gt; &lt;asp:LinkButton id=<span class="str">"lnkUpdate"</span> Text=<span class="str">"Save"</span> CommandName=<span class="str">"Update"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:LinkButton id=<span class="str">"lnkCancel"</span> Text=<span class="str">"Cancel"</span> CommandName=<span class="str">"Cancel"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;/div&gt; &lt;/EditItemTemplate&gt; &lt;/asp:ListView&gt; &lt;asp:SqlDataSource
id=<span class="str">"srcMovies"</span> SelectCommand=<span class="str">"SELECT
Id, Title, Director FROM Movies"</span> UpdateCommand=<span class="str">"Update
Movie SET Title=@Title, Director=@Director WHERE Id=@Id"</span><br />
DeleteCommand="Delete Movies WHERE Id=@Id"<br />
ConnectionString=<span class="str">'&lt;%$ ConnectionStrings:MyDatabase %&gt;'</span> Runat=<span class="str">"server"</span> /&gt;
&lt;/div&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;</pre>
        </blockquote>
        <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=af04000b-cbf6-407b-96a8-38aaf225a844" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Simple LINQ Search</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,dcd6091c-dd61-4d40-9ebb-a28e77d970ec.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,dcd6091c-dd61-4d40-9ebb-a28e77d970ec.aspx</id>
    <published>2008-04-18T10:30:59.30177-07:00</published>
    <updated>2008-04-18T10:30:59.30177-07:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
This is a simple example using LINQ to create a search form and display the results
in a Gridview. 
</p>
        <pre class="csharpcode">&lt;%@ Page Language=<span class="str">"VB"</span> %&gt;
&lt;%@ Import Namespace=<span class="str">"System.Web.Configuration"</span> %&gt;
&lt;%@ Import Namespace=<span class="str">"System.Linq"</span> %&gt; &lt;%@
Import Namespace=<span class="str">"System.Data.Linq"</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; 
<br /><br /><br /><br />
&lt;script runat=<span class="str">"server"</span>&gt; Sub btnSearch_Click(ByVal
sender As Object, ByVal e As EventArgs) Dim conString As String = WebConfigurationManager.ConnectionStrings(<span class="str">"MyDatabase"</span>).ConnectionString
Dim db As New DataContext(conString) Dim tMovie = db.GetTable(Of Movie)() grdMovies.DataSource
= tMovie.Where(Function(m) m.Director.Contains(txtDirector.Text)) grdMovies.DataBind()
End Sub &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;SearchMovies.aspx&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:Label id=<span class="str">"lblDirector"</span> Text=<span class="str">"Director:"</span> AssociatedControlID=<span class="str">"txtDirector"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:TextBox id=<span class="str">"txtDirector"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:Button id=<span class="str">"btnSearch"</span> Text=<span class="str">"Search"</span> OnClick=<span class="str">"btnSearch_Click"</span> Runat=<span class="str">"Server"</span> /&gt;
&lt;br /&gt;&lt;br /&gt; &lt;asp:GridView id=<span class="str">"grdMovies"</span> Runat=<span class="str">"server"</span> /&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=dcd6091c-dd61-4d40-9ebb-a28e77d970ec" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Paging with LINQ to SQL</title>
    <link rel="alternate" type="text/html" href="http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,7271b912-9083-4100-80de-29bb54e833c3.aspx" />
    <id>http://www.stonecoastwebdesign.com/dasblogce/PermaLink,guid,7271b912-9083-4100-80de-29bb54e833c3.aspx</id>
    <published>2008-04-18T08:22:44.944-07:00</published>
    <updated>2008-04-18T08:37:20.8297835-07:00</updated>
    <category term="ASP.NET" label="ASP.NET" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,ASP.NET.aspx" />
    <category term="LINQ" label="LINQ" scheme="http://www.stonecoastwebdesign.com/dasblogce/CategoryView,category,LINQ.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <br />
I've been experimenting with LINQ to SQL using code examples from <a href="http://www.superexpert.com" target="_blank">ASP.NET
Unleashed 3.5</a>. It's amazing how little code is needed to do some pretty amazing
things without ever coding an SQL or ADO.NET.  
</p>
        <p>
In this example, we're using paging on a GridView using a LINQ to SQL class. Paging
in a Gridviews typically works by loading all of the records into memory on the server
and then displaying only x records at a time.  This, of course, can place a tremendous
load on the server if there are a lot of records.  In this example, using LINQ's
Skip and Take operators we pass in the the page number and the size creating a much
more efficient way to page through a recordset. 
</p>
        <p>
The first step is to create an entity using the Object Relational Designer in Visual
Studio 2008.    Simply, create a new LINQ to SQL class and then drag
whatever table you want from the database on to the designer surface.  In this
example, I created a data entity named Movie along with a class named MoviesLINQPaging. 
Inside of my class I created two methods named GetMovies and GetMovieCount.  
</p>
        <p>
Here is a <a href="http://www.stonecoastwebdesign.com/code/unleashed35/ShowLINQPaging.aspx">working
demo</a></p>
        <p>
          <strong>App_Code/MoviesLINQPaging.vb</strong>
        </p>
        <pre class="csharpcode">
          <span class="kwrd">Imports</span> Microsoft.VisualBasic <span class="kwrd">Imports</span> System <span class="kwrd">Imports</span> System.Collections.Generic <span class="kwrd">Imports</span> System.Linq <span class="kwrd">Imports</span> System.Data.Linq <span class="kwrd">Imports</span> System.Web <span class="kwrd">Public</span><span class="kwrd">Class</span> MoviesLINQPaging <span class="kwrd">Public</span><span class="kwrd">Shared</span><span class="kwrd">Function</span> GetMovies(<span class="kwrd">ByVal</span> startRowIndex <span class="kwrd">As</span><span class="kwrd">Integer</span>, <span class="kwrd">ByVal</span> maximumRows <span class="kwrd">As</span><span class="kwrd">Integer</span>) <span class="kwrd">As</span> IEnumerable(Of
Movie) <span class="kwrd">Dim</span> db <span class="kwrd">As</span><span class="kwrd">New</span> MoviesDataContext() <span class="kwrd">Return</span> db.Movies.Skip(startRowIndex).Take(maximumRows) <span class="kwrd">End</span><span class="kwrd">Function</span><span class="kwrd">Public</span><span class="kwrd">Shared</span><span class="kwrd">Function</span> GetMovieCount() <span class="kwrd">As</span><span class="kwrd">Integer</span><span class="kwrd">Dim</span> context <span class="kwrd">As</span> HttpContext
= HttpContext.Current <span class="kwrd">If</span> IsNothing(context.Cache(<span class="str">"MovieCount"</span>)) <span class="kwrd">Then</span> context.Cache(<span class="str">"MovieCount"</span>)
= GetMovieCountFromDB() <span class="kwrd">End</span><span class="kwrd">If</span><span class="kwrd">Return</span><span class="kwrd">CType</span>(context.Cache(<span class="str">"MovieCount"</span>), <span class="kwrd">Integer</span>) <span class="kwrd">End</span><span class="kwrd">Function</span><span class="kwrd">Private</span><span class="kwrd">Shared</span><span class="kwrd">Function</span> GetMovieCountFromDB() <span class="kwrd">As</span><span class="kwrd">Integer</span><span class="kwrd">Dim</span> db <span class="kwrd">As</span><span class="kwrd">New</span> MoviesDataContext() <span class="kwrd">Return</span> db.Movies.Count() <span class="kwrd">End</span><span class="kwrd">Function</span><span class="kwrd">End</span> Class</pre>
        <p>
The next step is to create new aspx page with a gridview which uses a ObjectDataSource
to display the data. Notice the properties of the ObjectDataSource:  TypeName="MoviesLINQPaging"
- this is the class name found in MoviesLINQPaging.vb. SelectMethod=<span class="str">"GetMovies"</span> and
SelectCountMethod=<span class="str">"GetMovieCount"</span> are the two methods inside
the MoviesLINQPaging class. 
</p>
        <pre class="csharpcode">MoviesLINQPaging.aspx</pre>
        <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.1//EN"</span><span class="str">"http://www.w3.org/TR/xhtml11/DTD/xhtml11.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;style
type=<span class="str">"text/css"</span>&gt; .movies td,.movies th { padding:5px;
} &lt;/style&gt; &lt;title&gt;Show LINQ Paging&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:GridView id=<span class="str">"grdMovies"</span> DataSourceID=<span class="str">"srcMovies"</span> AllowPaging=<span class="str">"true"</span> PageSize=<span class="str">"3"</span> CssClass=<span class="str">"movies"</span> Runat=<span class="str">"server"</span> /&gt;
&lt;asp:ObjectDataSource id=<span class="str">"srcMovies"</span> TypeName=<span class="str">"MoviesLINQPaging"</span> SelectMethod=<span class="str">"GetMovies"</span> SelectCountMethod=<span class="str">"GetMovieCount"</span> EnablePaging=<span class="str">"True"</span> Runat=<span class="str">"server"</span> /&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=7271b912-9083-4100-80de-29bb54e833c3" />
      </div>
    </content>
  </entry>
</feed>