<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CUENQH86eip7ImA9WhRaEEU.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488</id><updated>2012-02-12T22:54:51.112+01:00</updated><category term="Sorting" /><category term="Visual Studio" /><category term="Document" /><category term="WebService" /><category term="Performance" /><category term="MVVM" /><category term="Lambda Expression" /><category term="MVC" /><category term="Binding" /><category term="Cache" /><category term="Stored Procedure" /><category term="Unrar" /><category term="AJAX" /><category term="WebRequest" /><category term="Toolbar" /><category term="Authorization" /><category term="Sitecore" /><category term="Log" /><category term="Form Events" /><category term="Interface" /><category term="Serialize" /><category term="IDE" /><category term="Merg" /><category term="Test" /><category term="Programming" /><category term="ASP.NET" /><category term="Abstract" /><category term="RenderControl" /><category term="WMI" /><category term="BDD" /><category term="DataSet" /><category term="RAR" /><category term="WebResponse" /><category term="Macro" /><category term="anounimous" /><category term="Parser" /><category term="Routing" /><category term="JSON" /><category term="Animation" /><category term="custom class" /><category term="ADO" /><category term="web.config" /><category term="Windows 7" /><category term="Threading" /><category term="Menu" /><category term="LINQ" /><category term="Zip" /><category term="jQuery" /><category term="Script" /><category term="Website" /><category term="VSS" /><category term="CSS" /><category term="REST" /><category term="Logging" /><category term="DependencyProperty" /><category term="XML" /><category term="Memory Leak" /><category term="Life Cycle" /><category term="IIS" /><category term="Google" /><category term="SDK" /><category term="Templates" /><category term="C#" /><category term="Entities" /><category term="Reflection" /><category term="Company" /><category term="WCF" /><category term="User Experience" /><category term="MDI" /><category term="HTML" /><category term="Generic" /><category term="WeakEventManager" /><category term="Debug" /><category term="Organisation" /><category term="EasingFunction" /><category term="XElement" /><category term="JavaScript" /><category term="WPF" /><category term="Page Events" /><category term=".NET" /><category term="DOS" /><title>Windows And Web Development</title><subtitle type="html">some handy tips for me working in and with Windows</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://wdevs.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://wdevs.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>95</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Wdevs" /><feedburner:info uri="wdevs" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>Wdevs</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry gd:etag="W/&quot;DkADRn87eyp7ImA9WhRTGU4.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-2835926663044528619</id><published>2011-11-10T15:18:00.001+01:00</published><updated>2011-11-10T15:19:37.103+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-10T15:19:37.103+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="XML" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><title>Convert XmlText to HtmlText</title><content type="html">&lt;div dir="ltr" id="idOWAReplyText84894"&gt;&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;I have been using Xml streams for quite some time. When I use them in an ASP.Net page, using SOAP or Ajax calls, I sometimes want to see what I send and what I recieve from the server. Showing them on the page was always a bit of tweak. This ample code demonstrates a very simple tweek. It provides a label that can show the xml Text (as its content or Text property) on the page,&amp;nbsp;by rendering the simpel characters.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;When the control is compiled I can use it as one of&amp;nbsp;the two ways:&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;panahyAjax&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;XmlLabel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="xmlLabel"&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;gt;&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;is&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;just&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="one"&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;sample&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;is&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;panahyAjax&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;XmlLabel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;Or&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;XmlLabel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; label = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;XmlLabel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;();&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; file = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;File&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.OpenText(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"Sample.xml"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;br /&gt;
label.Text = file.ReadToEnd();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;And the code is as folllows:&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;XmlLabel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; : &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;Label&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;{&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; ConvertXmlTextToHtmlText(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; inputText)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;// Replace all start and end tags.&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; startPattern = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;@"&amp;lt;([^&amp;gt;]+)&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; regEx = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;Regex&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;(startPattern);&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; outputText = regEx.Replace(inputText, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"&amp;amp;lt;&amp;lt;b&amp;gt;$1&amp;amp;gt;&amp;lt;/b&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;outputText = outputText.Replace(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;" "&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"&amp;amp;nbsp;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;outputText = outputText.Replace(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"\r\n"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"&amp;lt;br /&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; outputText;&lt;br /&gt;
&amp;nbsp;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;override&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; RenderContents(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;HtmlTextWriter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; output)&lt;br /&gt;
&amp;nbsp;{&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp; string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; xmlText = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;XmlLabel&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.ConvertXmlTextToHtmlText(Text);&lt;br /&gt;
&amp;nbsp; output.Write(xmlText);&lt;br /&gt;
&amp;nbsp;}&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="-webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; border-collapse: separate; color: black; font: normal normal normal medium/normal 'Times New Roman'; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;span lang="NL" style="color: #1f497d;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-2835926663044528619?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/2835926663044528619?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/2835926663044528619?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/8y1WXa0UIic/convert-xmltext-to-htmltext.html" title="Convert XmlText to HtmlText" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/11/convert-xmltext-to-htmltext.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0QDQ30-fCp7ImA9WhRTGU4.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-6758441915968358484</id><published>2011-11-10T14:21:00.003+01:00</published><updated>2011-11-10T14:22:52.354+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-10T14:22:52.354+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="RenderControl" /><category scheme="http://www.blogger.com/atom/ns#" term="HTML" /><title>Using RenderControl method to generate Html</title><content type="html">&lt;span style="font-family: Consolas; font-size: x-small;"&gt;&lt;span style="font-family: Consolas; font-size: x-small;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;This article demonstrates how to generate perfect HTML using the RenderControl method of server controls. The Html code is generated without makeing any server-side state or view state.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt; This method demonstrates how to show Html output of a Server Control&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;///&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&lt;span style="color: grey; font-family: Consolas;"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; ShowHtml()&lt;br /&gt;
{&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&amp;nbsp; // Create the in-memory objects that will catch the rendered output.&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&amp;nbsp; StringWriter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; writer = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;StringWriter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;();&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&amp;nbsp; HtmlTextWriter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; output = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;HtmlTextWriter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;(writer);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&amp;nbsp; // Render the control to an in-memory string.&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp; var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; control = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;HyperLink&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;();&lt;br /&gt;
&amp;nbsp; control.NavigateUrl = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;@"http:\\asghar.panahy.com"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&amp;nbsp; control.Text = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"Asghar Panahy"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&amp;nbsp; control.Target = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"_blank"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&amp;nbsp; control.ToolTip = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"Demostration"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; control.&lt;strong&gt;RenderControl&lt;/strong&gt;(output);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&amp;nbsp; // Display the HTML (and encode it properly so that&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&amp;nbsp; // it appears as text in the browser).&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;nbsp; lblHtml.Text = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"The HTML for LinkWebControl1 is&amp;lt;br /&amp;gt;&amp;lt;blockquote&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;+&amp;nbsp;&lt;strong&gt;Server.HtmlEncode&lt;/strong&gt;(writer.ToString()) + &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"&amp;lt;/blockquote&amp;gt;"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;The output of this codewill be reading what you would ecpect in the Html code behind.&lt;br /&gt;
Notice that skipping the Server.HtmlEncode call will put the generated html as a link into the page. &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-6758441915968358484?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/6758441915968358484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/6758441915968358484?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/pnS15n7gz2Y/using-rendercontrol-method-to-generate.html" title="Using RenderControl method to generate Html" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/11/using-rendercontrol-method-to-generate.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0INQXg5fyp7ImA9WhRTF0g.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-6118929536474007676</id><published>2011-11-08T13:30:00.003+01:00</published><updated>2011-11-08T13:33:10.627+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T13:33:10.627+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="custom class" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><title>Encapsulating an AJAX client control into a custom server control (Part 3)</title><content type="html">&lt;div dir="ltr" id="idOWAReplyText92870"&gt;&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;The &lt;a href="http://wdevs.blogspot.com/2011/11/implementing-custom-classes-for_08.html"&gt;previous article&lt;/a&gt; was a step forward but it is still far from reusing as a server side control. What we will do in this part will make us possible to have a custom textbox control that makes al it takes to have this client-side functionality and we will be able to drag the ASP.NET control into our page.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;To start with, we need a new server-side control library project that will compile as a dll and contains the server side code and embeds the client-side script. This project will have two files in it: the PassTextBox.cs which deals with the server-side TextBox and inherits from &lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;TextBox &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;and implements the &lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;IScriptControl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;which makes it possible to embed the script code.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;Notice in the code that the class needs to register the script with the ScriptManager which is accessible through its static method &lt;span style="font-family: 'Courier New';"&gt;GetCurrent(Page)&lt;/span&gt;. This is done in OnPreRender method.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;In the&lt;a href="http://wdevs.blogspot.com/2011/11/implementing-custom-classes-for_08.html"&gt; previous article&lt;/a&gt; we had the css class names inside the javascript. In this example we will assign them through the controls properties. The GetScriptDescriptor method allows us to prototype our class where we define these properties.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;namespace&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; Panahy.Ajax&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;class&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;PassTextBox&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; : &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;TextBox&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;IScriptControl&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;nbsp; {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;private&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptManager&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; sMgr;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; WeakCssClass;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; MediumCssClass;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;public&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;string&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; StrongCssClass;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;virtual&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;IEnumerable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptDescriptor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;gt; GetScriptDescriptors()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptControlDescriptor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; descriptor =&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptControlDescriptor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"Panahy.Ajax.PassTextBox"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.ClientID);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; descriptor.AddProperty(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"weakCssClass"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.WeakCssClass);&lt;br /&gt;
&amp;nbsp; descriptor.AddProperty(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"mediumCssClass"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.MediumCssClass);&lt;br /&gt;
&amp;nbsp; descriptor.AddProperty(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"strongCssClass"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.StrongCssClass);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp; return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptDescriptor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;[] { descriptor };&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;virtual&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;IEnumerable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptReference&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;gt; GetScriptReferences()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptReference&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; reference = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptReference&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;();&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; reference.Assembly = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"Panahy.Ajax"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&amp;nbsp; reference.Name = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"Panahy.Ajax.PassTextBox.js"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptReference&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;[] { reference };&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;override&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;strong&gt;OnPreRender&lt;/strong&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;EventArgs&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; e)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; (!&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.DesignMode)&lt;br /&gt;
&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;&lt;span style="color: green; font-family: Consolas;"&gt;//test for the existence of a ScriptManager &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;sMgr = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptManager&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.&lt;strong&gt;GetCurrent&lt;/strong&gt;(Page);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; (sMgr == &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;throw&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;HttpException&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;&lt;span style="color: #a31515; font-family: Consolas;"&gt;"A ScriptManager control must exist on the page."&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sMgr.&lt;strong&gt;RegisterScriptControl&lt;/strong&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;br /&gt;
&amp;nbsp; }&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;base&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.OnPreRender(e);&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;protected&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;override&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;void&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; Render(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;HtmlTextWriter&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; writer)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;if&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; (!&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.DesignMode)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; sMgr.&lt;strong&gt;RegisterScriptDescriptors&lt;/strong&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp; base&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.Render(writer);&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;IEnumerable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptReference&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;IScriptControl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.GetScriptReferences()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; GetScriptReferences();&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;IEnumerable&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;ScriptDescriptor&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;&lt;span style="color: #2b91af; font-family: Consolas;"&gt;IScriptControl&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.GetScriptDescriptors()&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; GetScriptDescriptors();&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;The javascript file remains as before. &lt;br /&gt;
Now we can reuse the control in any project that refers to the dll.&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&amp;lt;%&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;@&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;Register&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;Assembly&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="Panahy.Ajax"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;Namespace&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="Panahy.Ajax"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;TagPrefix&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="panahyAjax"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; %&amp;gt;&lt;br /&gt;
&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;panahyAjax&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;PassTextBox&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;ID&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="textbox1"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;runat&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="server"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;width&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="200"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;TextMode&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="Password"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;WeakCssClass&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="weak"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;MediumCssClass&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="medium"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; StrongCssClass&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="strong"&amp;gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;panahyAjax&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;PassTextBox&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: Verdana;"&gt;Although this sample can be handy to use as a template for other server controls, the introduced functionality could be done by creating an AJAX Behavior for client controls, which is the topic for the next article.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-6118929536474007676?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/6118929536474007676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/6118929536474007676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/iKjKzNCcFvo/encapsulating-ajax-client-control-into.html" title="Encapsulating an AJAX client control into a custom server control (Part 3)" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/11/encapsulating-ajax-client-control-into.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0IERXg8eCp7ImA9WhRTF0g.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-3172712396111289808</id><published>2011-11-08T11:22:00.003+01:00</published><updated>2011-11-08T13:31:44.670+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T13:31:44.670+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="custom class" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><title>Implementing Custom Classes for Microsoft AJAX Library (Part 2)</title><content type="html">&lt;div dir="ltr" id="idOWAReplyText43397"&gt;&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;The &lt;a href="http://wdevs.blogspot.com/2011/11/implementing-custom-classes-for.html"&gt;previous article&lt;/a&gt; is demonstrates the use of custom class but it makes some assumption which is not best practice for developping pages.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;div dir="ltr" id="idOWAReplyText41101"&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;In this article I will try to make this one step forward by taking the class names (that were hard coded in the javascript) out of the script and assign them in the page. I will also provide a initialization to assign the same functionality to any page element.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;We start with the construction and pass the element that is using the class:&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;Panahy.Ajax.PassTextBox = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;(&lt;strong&gt;element&lt;/strong&gt;) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Panahy.Ajax.PassTextBox.initializeBase(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, [&lt;strong&gt;element&lt;/strong&gt;]);&lt;br /&gt;
&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; // initialize internal variables&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._weakCssClass = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._mediumCssClass = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._strongCssClass = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;Next, I call the &lt;span class="Apple-style-span" style="background-color: #fefdfa; color: #333333; display: inline; float: none; font: normal normal normal 13px/21px 'Courier New'; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;passwordStrengthClass&lt;/span&gt; method&amp;nbsp;in a new&amp;nbsp;event handler called&amp;nbsp;&lt;span style="font-family: Consolas;"&gt;&lt;strong&gt;_onKeyup&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;which I will apply the&amp;nbsp;css class to the element using get_element():&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;//define key press event&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;_onKeyup : &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;(e) {&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //get password text&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: darkgreen;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; pass = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.get_element().value;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; strength = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.returnPasswordStrength(pass);&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; (strength) {&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;case&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;"Weak"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;:&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.get_element().className = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._weakCssClass;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;"Medium"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;:&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.get_element().className = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._mediumCssClass;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;"Strong"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;:&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.get_element().className = &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._strongCssClass;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
},&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;Now, I need to tell the AJAX Library to assign the &lt;span style="font-family: Consolas;"&gt;_onKeyup&lt;/span&gt; method to &lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;keyup &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;event of the element. To do this, I create a delegate and add the handler as follows:&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;//initialize the UI control&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;initialize: &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp; Panahy.Ajax.PassTextBox.callBaseMethod(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;'initialize'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._onKeyupHandler = Function.createDelegate(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.&lt;strong&gt;_onKeyup&lt;/strong&gt;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp; $addHandlers(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.get_element(), {&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;'keyup'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; : &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.&lt;strong&gt;_onKeyup&lt;/strong&gt;}, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;); &lt;br /&gt;
},&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Verdana;"&gt;By doing this, I have to remove the reference when cleaning up the things in the dispose method:&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;dispose: &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;() { &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $&lt;strong&gt;clearHandlers&lt;/strong&gt;(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;.get_element()); &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Panahy.Ajax.PassTextBox.callBaseMethod(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;'dispose'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;);&lt;br /&gt;
},&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;It is almost done, except the definition of the get and set properties which can be done like this:&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;&lt;span style="color: darkgreen; font-family: Consolas;"&gt;//define properties&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;get_weakCssClass: &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;() {&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp; return&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._weakCssClass;&lt;br /&gt;
},&lt;br /&gt;
set_weakCssClass: &lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;function&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;(value) {&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp; t&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;his&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;._weakCssClass = value;&lt;br /&gt;
},&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;I need to do this for all three properties.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;Now, I can use this in my page after referencing it in the ScriptManager.&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;script&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;language&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="javascript"&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;&lt;span style="color: red; font-family: Consolas;"&gt;type&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;="text/javascript"&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp; var&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; app = Sys.Application;&lt;br /&gt;
&amp;nbsp; app.add_init(appInit);&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;nbsp; function&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; appInit(sender, args) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; $create(Panahy.Ajax.PassTextBox, &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { weakCssClass: &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;'weak'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, mediumCssClass: &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;'medium'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, strongCssClass: &lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;'strong'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt; },&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;null&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;, $get(&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;'MainContent_TextBoxPassword'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Consolas;"&gt;&lt;span style="font-family: Consolas;"&gt;));&lt;br /&gt;
}&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;lt;/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;&lt;span style="color: maroon; font-family: Consolas;"&gt;script&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;In this way, I don't need to set anything on the textbox.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="color: black; font-family: Verdana;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: blue; font-family: Consolas;"&gt;&lt;span style="color: black; font-family: Verdana;"&gt;This is still not perfect, In the &lt;a href="http://wdevs.blogspot.com/2011/11/encapsulating-ajax-client-control-into.html"&gt;next article&lt;/a&gt; I will demonstrate how to put this in a custom ASP.NET Control.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div dir="ltr" id="idSignature23921"&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font: normal normal normal medium/normal 'Times New Roman'; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="MsoNormal" style="margin: 0px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; color: black; font: normal normal normal medium/normal 'Times New Roman'; letter-spacing: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;span lang="NL" style="color: #1f497d;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-3172712396111289808?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/3172712396111289808?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/3172712396111289808?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/UVaVyfwl98A/implementing-custom-classes-for_08.html" title="Implementing Custom Classes for Microsoft AJAX Library (Part 2)" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/11/implementing-custom-classes-for_08.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8NRHg-fSp7ImA9WhRTF0k.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-2215651062562854116</id><published>2011-11-08T10:24:00.004+01:00</published><updated>2011-11-08T11:24:55.655+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-08T11:24:55.655+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JavaScript" /><category scheme="http://www.blogger.com/atom/ns#" term="custom class" /><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><title>Implementing Custom Classes for Microsoft AJAX Library (Part 1)</title><content type="html">This article explainis the basic steps for impplementing your own javascript class and use it in a page.&lt;br /&gt;
First, you need to write a script that describes the class. This example simply provides a class that verifies the length of a word to see if it has enough length to be used as a password. The file name is PasswordStrengthComponent.js&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;/* When working with JavaScript files in the code editor, you can add a reference to the&amp;nbsp;Microsoft AJAX Library. This will ensure that your coding includes IntelliSense for&amp;nbsp;the library. This is similar to the using statement in C# and the Imports statement in&amp;nbsp;Visual Basic. You embed this reference in a comment at the top of your .js file. The&amp;nbsp;following shows an example.&lt;br /&gt;
*/&lt;br /&gt;
/// &amp;lt;reference name="MicrosoftAjax.js"&amp;gt;&amp;lt;/reference&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;// register your namespace&lt;br /&gt;
Type.&lt;strong&gt;registerNamespace&lt;/strong&gt;("Panahy.Ajax");&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;//create constructor&lt;br /&gt;
Panahy.Ajax.PasswordStrengthComponent = function () {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; Panahy.Ajax.PasswordStrengthComponent.&lt;strong&gt;initializeBase&lt;/strong&gt;(this);&lt;br /&gt;
}&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;//define class&lt;br /&gt;
Panahy.Ajax.PasswordStrengthComponent.&lt;strong&gt;prototype&lt;/strong&gt; = {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;initialize&lt;/strong&gt;: function () {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //add custom initialization here&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Panahy.Ajax.PasswordStrengthComponent.callBaseMethod(this, 'initialize');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; passwordStrengthClass: function (password) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var strPass = new String(password.toString());&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (strPass.length &amp;amp;lt; 5) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Weak";&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (strPass.length &amp;amp;lt; 8) {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Medium";&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Strong";&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;dispose&lt;/strong&gt;: function () {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //add custom dispose actions here&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Panahy.Ajax.PasswordStrengthComponent.callBaseMethod(this, 'dispose');&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
}&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;//register class as a Sys.Component&lt;br /&gt;
Panahy.Ajax.PasswordStrengthComponent.&lt;strong&gt;registerClass&lt;/strong&gt;(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 'Panahy.Ajax.PasswordStrengthComponent', Sys.Component);&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;//notify script loaded&lt;br /&gt;
if (typeof (Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();&lt;/span&gt;&lt;br /&gt;
Next, you reference this script file in your page within the ScriptManager:&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;&amp;lt;asp:ScriptManager ID="ScriptManager1" runat="server"&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;Scripts&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:ScriptReference Path="Scripts/&lt;strong&gt;PasswordStrengthComponent.js&lt;/strong&gt;" /&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/Scripts&amp;gt;&lt;br /&gt;
&amp;lt;/asp:ScriptManager&amp;gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
From this point the script is available and can be used in thepage as in the following example:&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;&amp;lt;script language="javascript" type="text/javascript"&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; function _&lt;strong&gt;OnKeypress&lt;/strong&gt;() {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var checker = new Panahy.Ajax.PasswordStrengthComponent();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var pass = document.getElementById("MainContent_TextBoxPassword").value;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; var strength = checker.passwordStrengthClass(pass);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; document.getElementById(&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "MainContent_TextBoxPassword").setAttribute("class", strength);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;/span&gt;&lt;span style="font-family: 'Courier New';"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;&amp;lt;asp:TextBox ID="TextBoxPassword" runat="server" &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TextMode="Password" Width="200" onkeyup="_&lt;strong&gt;OnKeypress&lt;/strong&gt;()" CssClass="Empty"&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: 'Courier New';"&gt;&lt;a href="http://wdevs.blogspot.com/2011/11/implementing-custom-classes-for_08.html"&gt;Next part&lt;/a&gt; will take this subject one step forward.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-2215651062562854116?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/2215651062562854116?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/2215651062562854116?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/D8gNe9t0GkM/implementing-custom-classes-for.html" title="Implementing Custom Classes for Microsoft AJAX Library (Part 1)" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/11/implementing-custom-classes-for.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYBRXo6eyp7ImA9WhdaEk0.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-1295237980561207523</id><published>2011-10-21T16:09:00.004+02:00</published><updated>2011-10-21T16:25:54.413+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T16:25:54.413+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="LINQ" /><title>LinqToSql Count</title><content type="html">You can pass the results of a linq query to the next statement like this one&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var q = context.Products&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .Where(p =&amp;gt; p.ProductName.StartsWith("A"))&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .Count();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;and that should provide the count of products with names starting with "A".&amp;nbsp;&lt;/div&gt;&lt;div&gt;Further it would make no difference (performance wise) to skip theWhere statement and simply call the Count with filter as parameter, like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;var q = context.Products&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; .Count(p =&amp;gt; p.ProductName.StartsWith("B"));&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;or in another syntax like:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; q = (from p in context.Products&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;where p.ProductName.StartsWith("C")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;select true).Count();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;So, I did put a tracing into the Context.Log to see what it goes to the SQL-Server. I've got the following for all three cases:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;SELECT COUNT(*) AS [value]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;FROM [dbo].[Products] AS [t0]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;WHERE [t0].[ProductName] LIKE @p0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-- @p0: Input NVarChar (Size = 4000; Prec = 0; Scale = 0) [A%]&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;-- Context: SqlProvider(Sql2008) Model: AttributedMetaModel Build: 4.0.30319.1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-1295237980561207523?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/1295237980561207523?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/1295237980561207523?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/cUtas52PBo8/linqtosql-count.html" title="LinqToSql Count" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/linqtosql-count.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkICRnY9eyp7ImA9WhdaEUU.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-1820502228031906470</id><published>2011-10-21T10:08:00.002+02:00</published><updated>2011-10-21T10:09:27.863+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-21T10:09:27.863+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="AJAX" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><category scheme="http://www.blogger.com/atom/ns#" term="WebService" /><title>Placing a Web Method in a Page</title><content type="html">&lt;div&gt;In most cases, it makes sense to create a separate web service to handle your &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; AJAX callbacks.&lt;/div&gt;&lt;div&gt;This approach generally results in clearer pages and makes it easier to debug and refine your code.&lt;/div&gt;&lt;div&gt;However, in some situations you may decide you have one or more web methods that are designed&lt;/div&gt;&lt;div&gt;explicitly for use on a single page and that really shouldn't be reused in other parts of the application. In&lt;/div&gt;&lt;div&gt;this case, you may choose to create a dedicated web service for each page, or you might choose to move&lt;/div&gt;&lt;div&gt;the web service code into the page.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;Placing the web method code in the page is easy—in fact, all you need is a simple bit of cut-andpaste.&lt;/div&gt;&lt;div&gt;First, copy your web method (complete with the WebMethod attribute) into the code-behind class&lt;/div&gt;&lt;div&gt;for your page. Then, change it to a static method, and add the System.Web.Script.Services.ScriptMethod&lt;/div&gt;&lt;div&gt;attribute. Here's an example where the web method (named GetTerritoriesInRegion) is placed in a web&lt;/div&gt;&lt;div&gt;page named WebServiceCallback_PageMethods:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;public partial class WebServiceCallback_PageMethods : System.Web.UI.Page&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;nbsp; &amp;nbsp;[System.Web.Services.WebMethod()]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;nbsp; &amp;nbsp;[System.Web.Script.Services.ScriptMethod()]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;nbsp; &amp;nbsp;public static List&amp;lt;Territory&amp;gt; GetTerritoriesInRegion(int regionID)&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;nbsp; &amp;nbsp;{&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; // Farm the work out to the web service class.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;TerritoriesService service = new TerritoriesService();&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;return service.GetTerritoriesInRegion(regionID);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;nbsp; &amp;nbsp;}&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;...&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;Next, set the ScriptManager.EnablePageMethods property to true, and remove the reference in the&lt;/div&gt;&lt;div&gt;&amp;lt;Services&amp;gt; section of the ScriptManager (assuming you don't want to use any non-page web services):&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;lt;asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&amp;lt;/asp:ScriptManager&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Finally, change your JavaScript code so it calls the method through the PageMethods object, as&lt;/div&gt;&lt;div&gt;shown here:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;PageMethods.GetTerritoriesInRegion(regionID, OnRequestComplete, OnError);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'courier new', monospace;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;The PageMethods object exposes all the web methods you've added to the current web page.&lt;/div&gt;&lt;div&gt;One advantage of placing a web method in a page is that the method is no longer exposed through&lt;/div&gt;&lt;div&gt;an .asmx file. As a result, it's not considered part of a public web service, and it's not as easy for someone&lt;/div&gt;&lt;div&gt;else to discover. This is appealing if you're trying to hide your web services from curious users.&lt;/div&gt;&lt;div&gt;Another reason you might choose to code your web methods in the page class is to read values from&lt;/div&gt;&lt;div&gt;view state or the controls on the page. When you trigger a page method, a stripped-down version of the&lt;/div&gt;&lt;div&gt;page life cycle executes, just like with the &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; client callback feature you saw in Chapter 29. Of&lt;/div&gt;&lt;div&gt;course, there's no point in trying to modify page details because the page isn't being rerendered, so any&lt;/div&gt;&lt;div&gt;changes you make will simply be discarded.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-1820502228031906470?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/1820502228031906470?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/1820502228031906470?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/ORd3_4RgSq0/placing-web-method-in-page.html" title="Placing a Web Method in a Page" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/placing-web-method-in-page.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcBQ3g6eSp7ImA9WhdaEU0.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-2007167818787545421</id><published>2011-10-20T11:40:00.002+02:00</published><updated>2011-10-20T11:47:32.611+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-20T11:47:32.611+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Life Cycle" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><title>Loading a custom control at runtime</title><content type="html">You can load a server control to your page using the constructor of the control. For example a Literal control can be loaded as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;plhContainer.Controls.Add(
            new Literal
            {
                Text = string.Format("{0}.{1}",
                    method.ReflectedType.FullName, method.Name)
            });
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
When it comes to a custom control you also want the markup code of you custom control to be loaded too. So you need to tell the Page o load it for you:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
var nameBox = (NameBox) Page.LoadControl("NameBox.ascx");
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Basically, you could do this at any time, but it is recommanded to do this at &lt;b&gt;Page_Load&lt;/b&gt; the reason is that &lt;b&gt;this is the best place for the control to restore its state and receive postback events.&lt;/b&gt; Also the binding will take place after this method. Look at &lt;a href="http://wdevs.blogspot.com/2011/10/asp-page-en-control-lifecycle.html"&gt;my previous post&lt;/a&gt; for the sequence of the events and method calls when page gets loaded.&lt;br /&gt;
It is also recomannded to set a unique ID to that control if you need to find that later using FindControl, or some one else want to find where you have put it :-)&lt;br /&gt;
&lt;br /&gt;
So, my load method will look like this:&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
     private void LoadMyControls()
     {
         var nameBox = (NameBox) Page.LoadControl("NameBox.ascx");
         // Give the user control a unique name by setting its ID property.
         // You can use this information to retrieve a reference to the control
         // when you need it with the Page.FindControl() method.
         nameBox.ID = "nameBox"; 
         nameBox.FirstName = "Asghar";
         nameBox.LastName = "Panahy";
         nameBox.ChangeRequest += ChangeName;
         plhContainer.Controls.Add(nameBox);
     }
&lt;/code&gt;&lt;/pre&gt;When I call LoadMyControls() in Page_Load method, I see the following sequence in my output:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;&lt;code&gt;
STARTING: MCTS._70_515.Resources._Default.Page_Init
STARTING: MCTS._70_515.Resources._Default.OnInit
STARTING: MCTS._70_515.Resources._Default.Page_Load
STARTING: MCTS._70_515.Resources.NameBox.Page_Init
STARTING: MCTS._70_515.Resources.NameBox.OnInit
STARTING: MCTS._70_515.Resources._Default.OnLoad
STARTING: MCTS._70_515.Resources.NameBox.Page_Load
STARTING: MCTS._70_515.Resources.NameBox.&lt;b&gt;&lt;span class="Apple-style-span" style="color: #674ea7;"&gt;OnDataBinding&lt;/span&gt;&lt;/b&gt;
STARTING: MCTS._70_515.Resources.NameBox.get_LastName
STARTING: MCTS._70_515.Resources.NameBox.OnLoad
STARTING: MCTS._70_515.Resources._Default.OnPreRender
STARTING: MCTS._70_515.Resources.NameBox.OnPreRender
STARTING: MCTS._70_515.Resources.NameBox.OnUnload
STARTING: MCTS._70_515.Resources._Default.OnUnload
&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;
Notice that the custom control gets its data binded just after the page has passed Loading which is a good thing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-2007167818787545421?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/2007167818787545421?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/2007167818787545421?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/Kd9IHfM19Bo/loading-custom-control-at-runtime.html" title="Loading a custom control at runtime" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/loading-custom-control-at-runtime.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUQBR3wzfyp7ImA9WhdaEEQ.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-1535998026336507436</id><published>2011-10-20T09:55:00.000+02:00</published><updated>2011-10-20T09:55:56.287+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-20T09:55:56.287+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Page Events" /><category scheme="http://www.blogger.com/atom/ns#" term="Life Cycle" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><title>ASP Page en Control Lifecycle</title><content type="html">When I put a logging in a couple of override methods of a NameBox control and load the page containing the custom control I see the following:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.Page_Init&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnInit&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.&lt;b&gt;Page_Load&lt;/b&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnDataBinding&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.get_LastName&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.&lt;b&gt;OnLoad&lt;/b&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnPreRender&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnUnload&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
It is important to note that Page_Load is long before OnLoad method, similar to Page_Init versus OnInit.&lt;br /&gt;
&lt;br /&gt;
Next I click on the change button to post back to handle the event and I see the following:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.Page_Init&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnInit&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.Page_Load&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnDataBinding&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.get_LastName&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnLoad&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.&lt;b&gt;ChangeRequestClicked&lt;/b&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnPreRender&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnUnload&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Next, I add some similar loggging to the page that contains the control and see what happens when I load the page:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.Page_Init&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnInit&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt; STARTING: MCTS._70_515.Resources._Default.Page_Init&lt;br /&gt;
STARTING: MCTS._70_515.Resources._Default.OnInit&lt;br /&gt;
STARTING: MCTS._70_515.Resources._Default.Page_Load&lt;br /&gt;
STARTING: MCTS._70_515.Resources._Default.OnLoad&lt;/span&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.Page_Load&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnDataBinding&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.get_LastName&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnLoad&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt; STARTING: MCTS._70_515.Resources._Default.OnPreRender&lt;/span&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnPreRender&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnUnload&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt; STARTING: MCTS._70_515.Resources._Default.OnUnload&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, The OnLoad method gets called after binding whereas the Page_Load is about before the binding. Obviously, if you need to initialize your data, you better put your code in OnInit rather that OnLoad or Page_Load.&lt;br /&gt;
Another important thig here is the PreRender methods. These methods get called after load has been completed and the data is assumed to be in place.&lt;br /&gt;
&lt;br /&gt;
Now let's see what happens when I click a button on the control which causes a postback:&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.Page_Init&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnInit&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt; STARTING: MCTS._70_515.Resources._Default.Page_Init&lt;br /&gt;
STARTING: MCTS._70_515.Resources._Default.OnInit&lt;br /&gt;
STARTING: MCTS._70_515.Resources._Default.Page_Load&lt;br /&gt;
STARTING: MCTS._70_515.Resources._Default.OnLoad&lt;/span&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.Page_Load&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnDataBinding&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.get_LastName&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnLoad&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.&lt;b&gt;ChangeRequestClicked&lt;/b&gt;&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt; STARTING: MCTS._70_515.Resources._Default.&lt;b&gt;ChangeName&lt;/b&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources._Default.OnPreRender&lt;/span&gt;&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnPreRender&lt;br /&gt;
STARTING: MCTS._70_515.Resources.NameBox.OnUnload&lt;br /&gt;
&lt;span class="Apple-style-span" style="color: blue;"&gt; STARTING: MCTS._70_515.Resources._Default.OnUnload&lt;/span&gt;&lt;br /&gt;
&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Both event handlers in the control and in the page are called after all controls and the page has been loaded and the data is binded too, just before the rendering take place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-1535998026336507436?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/1535998026336507436?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/1535998026336507436?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/z7xkRZJJFxQ/asp-page-en-control-lifecycle.html" title="ASP Page en Control Lifecycle" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/asp-page-en-control-lifecycle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEARXo_fCp7ImA9WhdaEE8.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-5805032480820475913</id><published>2011-10-19T13:44:00.001+02:00</published><updated>2011-10-19T13:44:04.444+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-19T13:44:04.444+02:00</app:edited><title>Notify Database changes to ASP.NET pages</title><content type="html">In the old times there were two ways of getting notifications from the database into the &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; pages.&lt;div&gt;&lt;ol&gt;&lt;li&gt;writing to a file (simply create or delete an empty file) in a specific location where a CacheDependency can listen to and callBack a method on change.&lt;br&gt; &lt;br&gt;&lt;/li&gt;&lt;li&gt;implement an HttpHandler that gets the notification with a parameter of what is changed, and let the database send an http request to the IIS server on a trigger.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;I am sure there could be worse methods but even these two have a lot of complications in a secured architecture with high performance requirements, like we have these days.&lt;/div&gt; &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Fortunately, since SQL-Servet 2000, there is a new component implemented into SQL-server called &lt;b&gt;Service Broker&lt;/b&gt; that act on changes in tables that are marked to be notified on change. Internally they write to a specific table mentioning about the change.&lt;/div&gt; &lt;div&gt;In order to configure a database for Service Broker you can call a statement like this:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;Use Northwind&lt;/font&gt;&lt;/div&gt;&lt;div&gt; &lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;ALTER DATABASE Northwind SET ENABLE_BROKER&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;For more information about Service Broker see the &lt;a href="http://msdn.microsoft.com/en-us/library/ms171562(v=SQL.90).aspx"&gt;MSDN&lt;/a&gt;.&lt;/div&gt; &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Next, you need to set the &lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; to recieve the notification via dependencies. To do so , you need to add the command object to the dependency:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt; &lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;// Create the dependency.&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;SqlCacheDependency empDependency = new SqlCacheDependency(cmd);&lt;/font&gt;&lt;/div&gt; &lt;div&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;// Add a cache item that will be invalidated if one of its records changes&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;// (or a new record is added in the same range).&lt;/font&gt;&lt;/div&gt; &lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;Cache.Insert(&amp;quot;Employees&amp;quot;, ds, empDependency);&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;To start the notification on application service you need to add the following to the Global.ascx.cs in Application_Start&lt;/div&gt; &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;SqlDependency.Start(connectionString);&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;It is a good practice to stop the notifications on Application_End&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;SqlDependency.Stop(connectionString);&lt;/div&gt;&lt;div&gt; &lt;br&gt;&lt;/div&gt;&lt;div&gt;Once this is implemented, you can get the notifications through the OnChange event of the SqlDependency class.&lt;/div&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-5805032480820475913?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/5805032480820475913?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/5805032480820475913?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/0oCylRidvxI/notify-database-changes-to-aspnet-pages.html" title="Notify Database changes to ASP.NET pages" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/notify-database-changes-to-aspnet-pages.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4GQXk8cSp7ImA9WhdbGUk.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-4391458853901395862</id><published>2011-10-18T15:15:00.002+02:00</published><updated>2011-10-18T15:18:40.779+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-18T15:18:40.779+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Cache" /><category scheme="http://www.blogger.com/atom/ns#" term="ASP.NET" /><title>Implementing custom FileCacheProvider</title><content type="html">This is a summerized version of what you can find in the APress book Chapter 11.&lt;br /&gt;
&lt;div&gt;If you want to cach some pages or all, you need to first tell the &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; to do so. As the caching starts before rendering the page, you can not specifiy this in the page markup, rather it will be mentioned in the Global.asax.cs&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public &lt;b&gt;override&lt;/b&gt; string GetOutputCacheProviderName(HttpContext context)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Get the page.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string pageAndQuery = System.IO.Path.GetFileName(context.Request.Path);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (pageAndQuery.StartsWith("OutputCaching.aspx"))&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return "FileCache";&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; else&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return base.GetOutputCacheProviderName(context);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;This tells to &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; to use &lt;b&gt;FileCache&lt;/b&gt;&amp;nbsp;mechanics for cachin OutputCaching.aspx page. The rest will just follow the default.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Next step is to specify where to find the implementation of FileCache. This is mentioned in the web.config as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;system.web&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;caching&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;outputCache defaultProvider="FileCache"&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;providers&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;add name="&lt;b&gt;FileCache&lt;/b&gt;" type="MyCompany.MyProject.Caching.FileCacheProvider"&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cachePath="~/Cache" /&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/providers&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/outputCache&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/caching&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;lt;/system.web&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Notice that the cachePath is not a recognized attribute but we may introduce it to get the parameters. In this case it refers to an existing folder on the root of the website.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;Next step is to implement the provider. This involves to implement a class that inherits from&amp;nbsp;OutputCacheProvider and overrides the methods as follows:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public class FileCacheProvider : OutputCacheProvider&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // The location where cached files will be placed.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public string &lt;b&gt;CachePath&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { get; set; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public override void Initialize(string name, System.Collections.Specialized.NameValueCollection attributes)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; base.Initialize(name, attributes);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Retrieve the web.config settings.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CachePath = HttpContext.Current.Server.MapPath(attributes["cachePath"]);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public override object Add(string key, object entry, System.DateTime utcExpiry)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Transform the key to a unique filename.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string path = ConvertKeyToPath(key);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Set it only if it is not already cached.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!File.Exists(path))&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Set(key, entry, utcExpiry);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return entry;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public override object Get(string key)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string path = ConvertKeyToPath(key);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (!File.Exists(path)) return null;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CacheItem item = null;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; using (FileStream file = File.OpenRead(path))&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BinaryFormatter formatter = new BinaryFormatter();&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; item = (CacheItem)formatter.Deserialize(file);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Remove expired items.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (item.ExpiryDate &amp;lt;= DateTime.Now.ToUniversalTime())&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Remove(key);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return null;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return item.Item;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public override void Set(string key, object entry, System.DateTime utcExpiry)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CacheItem item = new CacheItem(entry, utcExpiry);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string path = ConvertKeyToPath(key);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Overwrite it, even if it already exists.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; using (FileStream file = File.OpenWrite(path))&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; BinaryFormatter formatter = new BinaryFormatter();&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; formatter.Serialize(file, item);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public override void Remove(string key)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string path = ConvertKeyToPath(key);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; if (File.Exists(path)) File.Delete(path);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; private string &lt;b&gt;ConvertKeyToPath&lt;/b&gt;(string key)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Flatten it to a single file name, with no path information.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; string file = key.Replace('/', '-');&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // Add .txt extension so it's not confused with a real &lt;a href="http://asp.net/"&gt;ASP.NET&lt;/a&gt; file.&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; file += ".txt";&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return Path.Combine(CachePath, file);&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The CachePath will be set by configurationManager. The private method ConvertKeyToPath helps to find a unique filename based on the url. This example uses binary formatter and a wrapper class that adds an expiration property to any object that needs to be cached. So, the following is the implementation of the wrapper class:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; [Serializable]&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public class CacheItem&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public DateTime ExpiryDate;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public object Item;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; public CacheItem(object item, DateTime expiryDate)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExpiryDate = expiryDate;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Item = item;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;That's all. When you run this you will notice that you will get an error if the Cache folder does not exist in the root.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;To test the caching try to put the next code in the Default.aspx&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;%@ OutputCache Duration="10" VaryByParam="None" %&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-4391458853901395862?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/4391458853901395862?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/4391458853901395862?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/0xLl8YtX_do/implementing-custom-filecacheprovider.html" title="Implementing custom FileCacheProvider" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/implementing-custom-filecacheprovider.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CE8AR346fCp7ImA9WhdbFk0.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-2384295073520146933</id><published>2011-10-14T16:34:00.000+02:00</published><updated>2011-10-14T16:34:06.014+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-14T16:34:06.014+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="MVC" /><title>MVC Tips</title><content type="html">&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;span lang="EN-US"&gt;You can use the standard ASP.NET features in your MVC views. In this case, you call the &lt;/span&gt;&lt;span class="CodeChar"&gt;&lt;span lang="EN-US" style="font-size: 9.0pt; line-height: 115%;"&gt;String.Format&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt; method to display the &lt;/span&gt;&lt;span class="CodeChar"&gt;&lt;span lang="EN-US" style="font-size: 9.0pt; line-height: 115%;"&gt;UnitPrice&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt; field in a suitable form for a monetary amount. You just pass in the &lt;/span&gt;&lt;span class="CodeChar"&gt;&lt;span lang="EN-US" style="font-size: 9.0pt; line-height: 115%;"&gt;Model.UnitPrice&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt; value as the argument to the method call.&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: TheSansMonoCondensed-Plain; mso-ansi-language: EN-US; mso-bidi-font-family: TheSansMonoCondensed-Plain;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Code"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;&amp;lt;%=&lt;/b&gt; String.Format("{0:F2}", Model.UnitPrice) %&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;String class can also be used as a formatter in thextbox:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, sans-serif;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="Code"&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Unit Price:&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;%: Html.TextBoxFor(model =&amp;gt; model.UnitPrice, new {&lt;b&gt;Value&lt;/b&gt; = &lt;b&gt;String.Format&lt;/b&gt;("{0:F2}", Model.UnitPrice)})%&amp;gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: TheSansMonoCondensed-Black;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-2384295073520146933?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/2384295073520146933?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/2384295073520146933?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/bGeFyUfJT3s/mvc-tips.html" title="MVC Tips" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/mvc-tips.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkADRXk9fip7ImA9WhdbFUQ.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-5795359756300248763</id><published>2011-10-14T13:12:00.001+02:00</published><updated>2011-10-14T13:12:54.766+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-14T13:12:54.766+02:00</app:edited><title>Localizing ASP.NET Tips</title><content type="html">&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;There are two kind of localizations:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Local resources are specific to a page.&lt;/li&gt;&lt;li&gt;Global resources are shared throughout the site&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;If your site contains many folders, you might have an &lt;b&gt;App_LocalResources&lt;/b&gt; subfolder in each folder of your site.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;&amp;lt;asp:Button ID=&amp;quot;ButtonFind&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Find&amp;quot; CssClass=&amp;quot;submitButton&amp;quot; &lt;b&gt;meta:resourcekey=&amp;quot;ButtonFindResource1&amp;quot;&lt;/b&gt; /&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;&amp;lt;asp:Localize ID=&amp;quot;LabelTitle&amp;quot; runat=&amp;quot;server&amp;quot; &lt;b&gt;Text&lt;/b&gt;=&amp;quot;Customer Lookup&amp;quot;&lt;b&gt; meta:resourcekey=&amp;quot;LabelTitleResource1&amp;quot;&lt;/b&gt;&amp;gt;&amp;lt;/asp:Localize&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;The Text property of the Button control is to aid the developer at design time.&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://ASP.NET"&gt;ASP.NET&lt;/a&gt; will use the key to find and match on any property that might be set inside the resource file as meta:resourcekey.&amp;lt;PropertyName&amp;gt; or ButtonFindResoure1.Text:&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;&amp;lt;data name=&amp;quot;ButtonFindResource1.Text&amp;quot; xml:space=&amp;quot;preserve&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;     &amp;lt;value&amp;gt;Find&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;&amp;lt;/data&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;&amp;lt;data name=&amp;quot;ButtonFindResource1.Tooltip&amp;quot; xml:space=&amp;quot;preserve&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;     &amp;lt;value&amp;gt;Click this to start the search action&amp;lt;/value&amp;gt;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;&amp;lt;/data&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Accessing a Local resource in C# could be done as follows:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;Textbox1.Text = &lt;b&gt;GetLocalResourceObject&lt;/b&gt;("Textbox1.Text").ToString();&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;br&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;Accessing a shared global resource in C# could be done in one of the two followings:&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;Textbox1.Text = Resources.ResourceFileName.Textbox1Text;&lt;/font&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;font class="Apple-style-span" face="&amp;#39;courier new&amp;#39;, monospace"&gt;Textbox1.Text = &lt;b&gt;GetGlobalResourceObject&lt;/b&gt;("ResourceFileName", "Textbox1Text") as string;&lt;/font&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br&gt; &lt;/p&gt;&lt;p class="MsoNormal"&gt;The methods GetGlobalResourceObject  and GetLocalResourceObject can come handy when the resources does not exist at compile time and might be provided as a separate dll at runtime.&lt;/p&gt;&lt;p&gt;&lt;/p&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-5795359756300248763?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/5795359756300248763?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/5795359756300248763?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/x1q-xOFIteg/localizing-aspnet-tips.html" title="Localizing ASP.NET Tips" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/localizing-aspnet-tips.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A04HQ3gzfCp7ImA9WhdbEkg.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-6218580432875046618</id><published>2011-10-10T17:18:00.002+02:00</published><updated>2011-10-10T17:18:52.684+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T17:18:52.684+02:00</app:edited><title>Show an object instance as an xnl on your page</title><content type="html">&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-family: Verdana, sans-serif;"&gt;This sample code demonstrates how to show an instance of an object in XML format on a page. It encodes the xml serialized string and dumps it as a code into a placeholder.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;ShowXmlObject&amp;lt;T&amp;gt;(  T&amp;nbsp;instance)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;ms&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;MemoryStream&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;System.Xml.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;XmlTextWriter&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;writer&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;System.Xml.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;XmlTextWriter&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;(ms,&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;Encoding&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;.Unicode);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;serializer&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;System.Xml.Serialization.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;XmlSerializer&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;typeof&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;(T));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;serializer.Serialize(writer,&amp;nbsp;instance);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writer.Flush();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ms.Position&amp;nbsp;=&amp;nbsp;0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;reader&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;StreamReader&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;(ms);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 10pt;"&gt;LogCode(&lt;/span&gt;&lt;span style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;HttpUtility&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 10pt;"&gt;.HtmlEncode(IndentXml(reader.ReadToEnd())));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;IndentXml(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;xml)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;p&amp;nbsp;=&amp;nbsp;xml.LastIndexOf(&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"?&amp;gt;"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;(p&amp;nbsp;&amp;gt;&amp;nbsp;0)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;xml&amp;nbsp;=&amp;nbsp;xml.Substring(p&amp;nbsp;+&amp;nbsp;2);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;doc&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;System.Xml.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;XmlDocument&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc.LoadXml(xml);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;settings&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;System.Xml.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;XmlWriterSettings&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;settings.Indent&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;true&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;settings.IndentChars&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"&amp;nbsp;&amp;nbsp;"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;settings.NewLineChars&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"\r\n"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;settings.NewLineHandling&amp;nbsp;=&amp;nbsp;System.Xml.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;NewLineHandling&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;.None;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;  sbOutput&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;StringBuilder&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;writer&amp;nbsp;=&amp;nbsp;System.Xml.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;XmlWriter&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;.Create(sbOutput,&amp;nbsp;settings);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;doc.Save(writer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;writer.Close();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;sbOutput.ToString();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;pre style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;} &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas;"&gt;public&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas;"&gt;void&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;LogCode(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas;"&gt;string&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;message)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;placeResult.Controls.Add(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas;"&gt;Literal&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;()&amp;nbsp;{&amp;nbsp;Text&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas;"&gt;"&amp;lt;pre&amp;gt;&amp;lt;code&amp;gt;"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;+&amp;nbsp;message&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas;"&gt;"&amp;lt;/code&amp;gt;&amp;lt;/pre&amp;gt;"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;});&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-family: Consolas;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-6218580432875046618?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/6218580432875046618?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/6218580432875046618?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/Q4-oRCIip6c/show-object-instance-as-xnl-on-your.html" title="Show an object instance as an xnl on your page" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/show-object-instance-as-xnl-on-your.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0YNQnk5eSp7ImA9WhdbEkg.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-1723272161757553686</id><published>2011-10-10T17:04:00.004+02:00</published><updated>2011-10-10T17:06:33.721+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-10T17:06:33.721+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Sitecore" /><title>Show Items structure in Sitecore</title><content type="html">&lt;div class="WordSection1"&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;The following example demonstrates how to get the information about a node on the back side of a node by giving  the item.ID. You also could do it easier by having the full path instead of creating an ID.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;It is important to do all this inside a SecurityDisabler. You might have some nodes that are not accessible to  anonymous user, if the code is running for without proper security. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;protected&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;StartToAnalyse(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;object&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;sender,&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;EventArgs&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;e)&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Consolas; font-size: 13px;"&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sitecore.Data.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;Database&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;master&amp;nbsp;=&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sitecore.Configuration.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;Factory&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;.GetDatabase(&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"master"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;using&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;Sitecore.SecurityModel.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;SecurityDisabler&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;())&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ProcessItem(master.GetItem(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;Sitecore.Data.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;ID&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;(textboxRoot.Text)));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;ShowTechnicalDetails(Sitecore.Data.Items.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;Item&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;item)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;string&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;pageName&amp;nbsp;=&amp;nbsp;item.DisplayName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;template&amp;nbsp;=&amp;nbsp;item.Template;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 10pt;"&gt;//LogLine("&amp;nbsp;Template&amp;nbsp;:&amp;nbsp;"&amp;nbsp;+&amp;nbsp;item.TemplateName);&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 10pt;"&gt;//&amp;nbsp;LogLine("&amp;nbsp;Uri&amp;nbsp;:&amp;nbsp;"&amp;nbsp;+&amp;nbsp;item.Uri.Path);&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 10pt;"&gt;//&amp;nbsp;string&amp;nbsp;rend&amp;nbsp;=&amp;nbsp;Sitecore.Context.Item.Fields["Renderings"].Value;&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Sitecore.Data.Items.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;DeviceItem&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;defDevice&amp;nbsp;=&amp;nbsp;Sitecore.Data.Items.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;DeviceItem&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;.ResolveDevice(Sitecore.Configuration.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;Factory&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;.GetDatabase(&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"master"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;layout&amp;nbsp;=&amp;nbsp;item.Visualization.GetLayout(defDevice);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;(layout&amp;nbsp;!=&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogLine(&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"&amp;nbsp;Layout&amp;nbsp;:&amp;nbsp;&amp;lt;u&amp;gt;&amp;nbsp;["&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;+&amp;nbsp;layout.DisplayName&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"]&amp;lt;/u&amp;gt;"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 10pt;"&gt;//&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;&amp;nbsp;LogLine("&amp;nbsp;File&amp;nbsp;:&amp;nbsp;"&amp;nbsp;+&amp;nbsp;layout.FilePath);&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;renderings&amp;nbsp;=&amp;nbsp;item.Visualization.GetRenderings(defDevice,&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;false&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 10pt;"&gt;//LogLine("Renderings:&amp;lt;ul&amp;gt;");&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;foreach&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;rend&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;in&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;renderings)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: green; font-family: Consolas; font-size: 10pt;"&gt;//LogLine("&amp;nbsp;Layout&amp;nbsp;:&amp;nbsp;"&amp;nbsp;+&amp;nbsp;rend.RenderingItem.DisplayName);&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogItem(pageName&amp;nbsp;+&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;";"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;+&amp;nbsp;rend.RenderingItem.InnerItem[&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"Path"&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;]);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;ProcessItem(Sitecore.Data.Items.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;Item&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;item)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;(item&amp;nbsp;==&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;LogLine(&lt;/span&gt;&lt;span lang="EN-US" style="color: #a31515; font-family: Consolas; font-size: 10pt;"&gt;"Item&amp;nbsp;not&amp;nbsp;found."&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ShowTechnicalDetails(item);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;foreach&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;(Sitecore.Data.Items.&lt;/span&gt;&lt;span lang="EN-US" style="color: #2b91af; font-family: Consolas; font-size: 10pt;"&gt;Item&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;child&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="color: blue; font-family: Consolas; font-size: 10pt;"&gt;in&lt;/span&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;item.Children)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span lang="EN-US" style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-family: Consolas; font-size: 10pt;"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ProcessItem(child);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="background: white;"&gt;&lt;span style="color: black; font-family: Consolas; font-size: 10pt;"&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-1723272161757553686?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/1723272161757553686?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/1723272161757553686?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/qUNslMtRdBk/show-items-structure-in-sitecore.html" title="Show Items structure in Sitecore" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/show-items-structure-in-sitecore.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8BQX0yfyp7ImA9WhdUGU0.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-617588614384215214</id><published>2011-10-06T15:45:00.002+02:00</published><updated>2011-10-06T15:47:30.397+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T15:47:30.397+02:00</app:edited><title>jQuery.Ajax versus Server-side event handler</title><content type="html">&lt;!--ppd1000055--&gt; &lt;div class="WordSection1"&gt;&lt;p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto"&gt;&lt;span lang="EN-US" style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;mso-fareast-language:NL"&gt;This sample demonstrates two ways of getting address from the server: using  server-side event handler versus calling jQuery.Ajax&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;color:black;mso-fareast-language:NL"&gt;The following is the markup that provides two fields with javascript call on the change event. It also provides a button  that is wired to a server side methode: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;div&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;h3&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  Address Test&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;h3&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;tabbing from the textboxes will verify if calling the webservice is required.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;table&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;width&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;100%&amp;quot;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;tr&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;table&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;tr&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  Huisnummer *&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;div&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;class&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;FieldContainer&amp;quot;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;asp&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;:&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;TextBox&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;runat&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ID&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;textboxHousenumber&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ClientIDMode&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;Static&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;CssClass&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;TextField  TextField02&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;onchange&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;VerifyAddress();&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ValidationGroup&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;KlantAddress&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;/&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;div&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;tr&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;tr&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  Postcode *&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;div&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;class&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;FieldContainer&amp;quot;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;asp&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;:&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;TextBox&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;runat&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ID&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;textboxPostcode&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ClientIDMode&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;Static&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;CssClass&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;TextField  TextField02&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;MaxLength&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;7&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;onchange&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;VerifyAddress();&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ValidationGroup&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;KlantAddress&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;/&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;div&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;td&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;tr&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;/&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;table&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Server side call:&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;br&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;/&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;asp&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;:&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;Button&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ID&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;runat&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;OnClick&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;ShowAddress&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;Text&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;Get Adres&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ToolTip&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;CustomerDataController&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;/&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;&amp;lt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;asp&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;:&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;Label&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;runat&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:red;mso-fareast-language:NL"&gt;ID&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&amp;quot;lblAddress&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;/&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;color:black;mso-fareast-language:NL"&gt;Assume we have a we DBLLayer that provides an address or throws an exception.&lt;br /&gt;
The event handler would be something like this: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:gray;mso-fareast-language:NL"&gt;///&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:green;mso-fareast-language:NL"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:gray;mso-fareast-language:NL"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:green;mso-fareast-language:NL"&gt;Server side event handler&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:gray;mso-fareast-language:NL"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;public&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;void&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; ShowAddress(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;object&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  sender, &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;EventArgs&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; e)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;try&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; adres = &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;DBLayer&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;.GetAddress(textboxPostcode.Text,  textboxHousenumber.Text);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ShowAdres(adres);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;catch&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; (&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;Exception&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  ex)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LogError(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;&amp;quot;Error  :- &amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &amp;#43; ex.Message);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;color:black;mso-fareast-language:NL"&gt;And the Javascript will look like this: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; VerifyAddress() {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:darkgreen;mso-fareast-language:NL"&gt;// This method is calling the ShowAddress only if both parameters are filled in. &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;#&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;lt;%&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;lblAddress.ClientID &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;%&amp;gt;&amp;quot; ).text(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; postcode = $(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;#&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;lt;%&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;textboxPostcode.ClientID &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;%&amp;gt;&amp;quot; ).val();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; huisnummer = $(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;#&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;lt;%&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;textboxHousenumber.ClientID &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;%&amp;gt;&amp;quot; ).val();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; (postcode &amp;amp;&amp;amp; huisnummer &amp;amp;&amp;amp; parseInt(huisnummer)  &amp;gt; 0) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;#&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;lt;%&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;lblAddress.ClientID &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;%&amp;gt;&amp;quot; ).text(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;calling the server&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;var&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; data = &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;{&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;  postcode:'&amp;quot;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &amp;#43; postcode &amp;#43; &amp;lt;span' , huisnummer: &amp;quot;&amp;nbsp; &amp;#43; huisnummer &amp;#43; &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot; &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;}&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;jQuery.ajax({&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type: &amp;lt;span' ,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; contentType: &amp;lt;span'application/json;' ,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; data: data,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dataType: &amp;lt;span' ,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; url: &amp;lt;span' ,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; success: OnGetAddressComplete,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error: OnErrorReceived&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; });&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  OnErrorReceived(xhr, ajaxOptions, thrownError) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; message = jQuery.parseJSON(xhr.responseText);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;#&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;lt;%&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;lblAddress.ClientID &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;%&amp;gt;&amp;quot; ).text(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;ERROR (&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &amp;#43; xhr.status &amp;#43; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;) - &amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &amp;#43; message.Message);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;function&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  OnGetAddressComplete(result) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:darkgreen;mso-fareast-language:NL"&gt;// display the result&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  adres = result.d;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;&amp;quot;#&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;lt;%&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;=&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:maroon;mso-fareast-language:NL"&gt;lblAddress.ClientID &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;%&amp;gt;&amp;quot; ).text(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;adres.Straat &amp;#43; &amp;lt;span''&amp;nbsp; &amp;#43;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adres.Huisnummer &amp;#43; &amp;lt;span','&amp;nbsp; &amp;#43;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; adres.Postcode &amp;#43; &amp;lt;span''&amp;nbsp; &amp;#43; adres.Plaats);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;color:black;mso-fareast-language:NL"&gt;And finally the webservice will be like:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:12.0pt;font-family:&amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [System.Web.Services.&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;WebMethod&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  ()]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;public&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;static&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; Adres GetAddress(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;string&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  postcode, &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;string&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; huisnummer)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; (!IsPostcode(postcode))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;throw&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;Exception&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; (&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;&amp;quot;Invalid  Postcode.&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;int&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  hNr = 0;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; (!&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;Int32&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  .TryParse(huisnummer, &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;out&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; hNr))&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;throw&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;Exception&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; (&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;&amp;quot;Invalid  house number.&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;var&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  result = &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;DBLayer&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; .GetAddress(postcode,  huisnummer);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;if&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  (result == &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;null&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;throw&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;Exception&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; (&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;&amp;quot;  Unknown address.&amp;quot;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; );&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;return&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  result;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;public&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;static&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;bool&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; IsPostcode(&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;string&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;  zipcode)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;var&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; ZipcodeRegex = &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;@&amp;quot;^[1-9][0-9]&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;{&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;3&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;}&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;[a-zA-Z]&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;{&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;2&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;}&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#A31515;mso-fareast-language:NL"&gt;[\\s]*$&amp;quot;&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;  ;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;Regex&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; r = &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;new&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;Regex&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; (ZipcodeRegex, &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;RegexOptions&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt; .IgnoreCase);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:#2B91AF;mso-fareast-language:NL"&gt;Match&lt;/span&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; m = r.Match(zipcode);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span lang="EN-US" style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:blue;mso-fareast-language:NL"&gt;return&lt;/span&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp; m.Success;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;span style="font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;;color:black;mso-fareast-language:NL"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-617588614384215214?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/617588614384215214?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/617588614384215214?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/LddQ38oDwt8/jqueryajax-versus-server-side-event.html" title="jQuery.Ajax versus Server-side event handler" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/10/jqueryajax-versus-server-side-event.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkENQ38_fip7ImA9WhdREk0.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-9153763008569278432</id><published>2011-08-01T15:18:00.000+02:00</published><updated>2011-08-01T15:18:12.146+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-01T15:18:12.146+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="JSON" /><title>Convert XElements to Json</title><content type="html">You need to capture the data type in a class that is serializable.&lt;br /&gt;
In this example I use Employee to do so. The first action will be to construct an IEnumerable of Employee:&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt; XElement empXml = GetEmployees();
 var empJson = from emp in empXml.Descendants("Employee")
               select new Employee
               {
                      ID = emp.Element("ID").Value,
                      FirstName = emp.Element("FirstName").Value,
                      Department = emp.Element("Department").Value,
                      City = emp.Element("City").Value
               };
&lt;/pre&gt;&lt;br /&gt;
The second step is to serialize the enumeration into the memory stream.&lt;br /&gt;
&lt;pre&gt;  var ser = new  DataContractJsonSerializer(typeof(IEnumerable&lt;Employee&gt;));
  var ms = new MemoryStream();
  ser.WriteObject(ms, empJson);
&lt;/pre&gt;And at last, we can take the generated stream as a string just before closing the stream.&lt;br /&gt;
&lt;br /&gt;
&lt;pre&gt;string json = Encoding.Default.GetString(ms.ToArray());
ms.Close();
&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-9153763008569278432?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/9153763008569278432?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/9153763008569278432?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/sydKLloVNJ0/convert-xelements-to-json.html" title="Convert XElements to Json" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/08/convert-xelements-to-json.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0QBSXk_fyp7ImA9WhZVGE4.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-345107133781140571</id><published>2011-05-31T11:48:00.006+02:00</published><updated>2011-05-31T12:55:58.747+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-31T12:55:58.747+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="jQuery" /><title>What is jQuery? Introduction</title><content type="html">This is a very short description of jQuery coming from the book &lt;strong&gt;MCTS Self-Pased Training Kit (Exam 70-515)&lt;/strong&gt;:&lt;br /&gt;&lt;br /&gt;jQuery is an open source library that simplifies the way JavaScript is written. It works across all modern browsers and is lightweight. You can use it for a variety of client-side programming tasks, such as selecting items inside your page, manipulating those items, changing styles, doing animations and effects, handling user events on the client side, and calling web services by using AJAX. There are also several plug-ins available for jQuery that provide rich controls that execute&lt;br /&gt;inside a browser window.&lt;br/&gt;&lt;br /&gt;Visual Studio 2010 and ASP.NET 4 now fully support jQuery for client-side development. The jQuery library is installed by default when you create a new ASP.NET website.&lt;br/&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;jQuery is simply a file of JavaScript code that allows you to more easily write JavaScript code that runs in many different browsers. This code can do many things; it can work with UI styles, handle user events, animate parts of your page, call back to the server via AJAX, and more.&lt;br/&gt;&lt;br /&gt;&lt;br /&gt;The jQuery library has a core set of features on which you can build. In fact, there are many extensions and plug-ins available for jQuery that help with menus, UI controls, page layout, navigation, and much more. The following list outlines the essential functionality that jQuery provides. &lt;br/&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Core &lt;/strong&gt; The core of the jQuery library allows you to identify code that can execute only after a document has fully loaded, create DOM elements dynamically, iterate selected&lt;br /&gt;elements, create extensions to jQuery itself, and more.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Selecting &lt;/strong&gt;jQuery’s power is in its ability to quickly select items in the DOM. You can easily return a single item from your page’s DOM or many items that match a pattern without having to write much code. You use the jQuery selectors to find specific HTML tags or to find form elements by ID, cascading style sheet class name, attribute or attribute value, and more.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Filtering and Traversing&lt;/strong&gt; You can create filters to select only those DOM elements that meet your filter criteria. You can also traverse through your selection and act upon the selected items (by changing their style or adding an event, for example). Some important filter and traverse functions are first, last, odd, visible, match, selected, contains, enabled, find, next, prev, parent, and siblings.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Manipulation &lt;/strong&gt;After you have selected an item (or multiple items), you can also use jQuery to manipulate the item. This might be as simple as evaluating the HTML contents or setting the text contents of the selected item. You can also use functions such as append, insert, replaceWith, wrap, and remove (among others) to add, modify, or remove content from the selected DOM item.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Cascading style sheets&lt;/strong&gt; jQuery also provides functions for working with cascading style sheets. This includes finding and setting styles, positioning items, setting height and width, and more.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Events&lt;/strong&gt; The jQuery library allows you to attach client code to user events in the browser. This decouples your event code from the actual markup. You can handle almost any user input event, including hover, toggle, click, dblclick, keydown, keyup, focus, mousedown, mouseenter, mouseleave, scroll, resize, and more.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Animation and Effects&lt;/strong&gt; jQuery provides functions for adding effects to and animating the items on your page. Functions include show, hide, fadeIn, fadeOut, fadeTo, slideDown, slideUp, animate, and more.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;AJAX &lt;/strong&gt;The jQuery library supports AJAX calls from the browser to the server. It allows you to call a web service or client script on the server and return the results to the page without refreshing the entire page&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;  &lt;li&gt;&lt;strong&gt;Utilities&lt;/strong&gt; There are several utility functions inside the jQuery language for working with browser compatibility, arrays, strings, and more.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br/&gt;&lt;br /&gt;The jQuery language is contained in a single file, jquery-&lt;version&gt;.min.js, in&lt;br /&gt;which version is the current version (1.4.1 at the time of this writing).&lt;br/&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The jquery-1.4.1-vsdoc.js file is used by Visual Studio to provide IntelliSense in the text editor for jQuery code. Visual Studio simply looks for this file based on the naming convention and will provide the appropriate IntelliSense. The jquery-1.4.1.js file is the debug version of jQuery. This is a version of the code that is readable. You will want to reference this file in your code when you are debugging your client scripts. The jquery-1.4.1.min.js file is the “minified” version of the jQuery language. You use this file for production applications because it is a smaller client download and executes faster.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;The jQuery language files are actually hosted by several content delivery networks (or CDNs). This ensures faster downloads and caching of the jQuery language. Microsoft provides a CDN host of jQuery at  http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js.&lt;br /&gt;You can use this URL to reference the jQuery language in your production applications.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;h3&gt;Where to go from here?&lt;/h3&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;Official &lt;a href='http://jquery.com/' title="Official Website"&gt;web site&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;Online &lt;a href="http://docs.jquery.com/Main_Page" title="Online documentation"&gt;documentation&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/JQuery" title="jQuery on wikipedia"&gt;Wikipedia&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://jqueryui.com/"&gt;jQuery UI&lt;/a&gt; provides abstractions for low-level interaction and animation, advanced effects and high-level, themeable widgets, built on top of the jQuery JavaScript Library, that you can use to build highly interactive web applications.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-345107133781140571?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/345107133781140571?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/345107133781140571?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/JiIH8PJMMhI/what-is-jquery-introduction.html" title="What is jQuery? Introduction" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/05/what-is-jquery-introduction.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4MQ3k9cCp7ImA9WhZWGEU.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-8224555808019010409</id><published>2011-05-12T16:51:00.001+02:00</published><updated>2011-05-20T10:43:02.768+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-20T10:43:02.768+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="C#" /><category scheme="http://www.blogger.com/atom/ns#" term="LINQ" /><title>Linq:  Group by and sort</title><content type="html">The following LINQ statement was the first one I wrote:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;var hsQ = from hspt in hospitals&lt;br /&gt;          orderby hspt.County, hspt.City&lt;br /&gt;          group hspt by hspt.County;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;It obviously groups by country and then sorts by city.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;However, I found the following even better as it groups first by country, sorts by country and then sorts within the group by city:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;var hsQ = from hspt in hospitals&lt;br /&gt;          orderby hspt.City&lt;br /&gt;          group hspt by hspt.County into hsptGroup&lt;br /&gt;          orderby hsptGroup.First().County&lt;br /&gt;          select hsptGroup;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-8224555808019010409?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/8224555808019010409?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/8224555808019010409?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/qb6f_CcEcHo/linq-group-by-and-sort.html" title="Linq:  Group by and sort" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/05/linq-group-by-and-sort.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08GRnw-eip7ImA9WhZQFEs.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-8797126582448297100</id><published>2011-04-22T10:09:00.003+02:00</published><updated>2011-04-22T10:43:47.252+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-22T10:43:47.252+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="DOS" /><category scheme="http://www.blogger.com/atom/ns#" term="RAR" /><category scheme="http://www.blogger.com/atom/ns#" term="Script" /><category scheme="http://www.blogger.com/atom/ns#" term="Unrar" /><title>Rar and UnRar in DOS.cmd</title><content type="html">To Rar all directories in the current folder and make a rar file using the folder name:&lt;pre&gt;&lt;code&gt;@echo off&lt;br /&gt;@setlocal&lt;br /&gt;REM&lt;br /&gt;REM Unrar all .rar files on the current directory and use the full path&lt;br /&gt;REM&lt;br /&gt;&lt;br /&gt;set path="%ProgramFiles(x86)%\WinRAR\";%path%&lt;br /&gt;for /F %%i in ('dir /b *.rar') do call :do_extract "%%i"&lt;br /&gt;&lt;br /&gt;:eof&lt;br /&gt;pause&lt;br /&gt;exit 1&lt;br /&gt;&lt;br /&gt;:do_extract&lt;br /&gt;echo %1&lt;br /&gt;REM  x  : Extract files with full path&lt;br /&gt;REM -y : Assume Yes on all queries&lt;br /&gt;unrar x -y %1&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;To Unrar all files in the current location using FullPath:&lt;pre&gt;&lt;code&gt;&lt;br /&gt;@echo off&lt;br /&gt;@setlocal&lt;br /&gt;REM&lt;br /&gt;REM Unrar all .rar files on the current directory and use the full path&lt;br /&gt;REM&lt;br /&gt;&lt;br /&gt;set path="%ProgramFiles(x86)%\WinRAR\";%path%&lt;br /&gt;for /F %%i in ('dir /b *.rar') do call :do_extract "%%i"&lt;br /&gt;&lt;br /&gt;:eof&lt;br /&gt;pause&lt;br /&gt;exit 1&lt;br /&gt;&lt;br /&gt;:do_extract&lt;br /&gt;echo %1&lt;br /&gt;REM  x  : Extract files with full path&lt;br /&gt;REM -y : Assume Yes on all queries&lt;br /&gt;unrar x -y %1&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-8797126582448297100?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/8797126582448297100?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/8797126582448297100?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/BEmjclUHJz4/rar-and-unrar-in-doscmd.html" title="Rar and UnRar in DOS.cmd" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/04/rar-and-unrar-in-doscmd.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcBQ3o9eCp7ImA9WhZRFU4.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-3337727104727541342</id><published>2011-04-11T17:59:00.003+02:00</published><updated>2011-04-11T18:07:32.460+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-11T18:07:32.460+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Authorization" /><category scheme="http://www.blogger.com/atom/ns#" term="WCF" /><title>WCF Authenticate by APIKey</title><content type="html">Following my previous note, I want each service have its own authentication mechanics, maybe some public services and some sharing the same authentication manager.&lt;br /&gt;&lt;br /&gt;To do so, I will set up different behaviors in my web.config in the servicebehaviors section, and make sure each service points to the corresponding behavior:&lt;br /&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color: #000000;"&gt;&amp;lt;system.serviceModel&amp;gt;&lt;br /&gt;  &amp;lt;behaviors&amp;gt;&lt;br /&gt;    &amp;lt;serviceBehaviors&amp;gt;&lt;br /&gt;      &amp;lt;behavior name=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"ProductionServiceBehavior"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt; &lt;br /&gt;        &amp;lt;serviceAuthorization serviceAuthorizationManagerType=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"WCFWebHttp.APIKeyAuthorization, WCFWebHttp"&lt;/span&gt;&lt;span style="color: #000000;"&gt; /&amp;gt;&lt;br /&gt;      &amp;lt;/behavior&amp;gt;&lt;br /&gt;      &amp;lt;behavior name=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"PublicServiceBehavior"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;br /&gt;        &amp;lt;serviceMetadata httpGetEnabled=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"true"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;br /&gt;        &amp;lt;serviceDebug includeExceptionDetailInFaults=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"false"&lt;/span&gt;&lt;span style="color: #000000;"&gt;/&amp;gt;&lt;br /&gt;      &amp;lt;/behavior&amp;gt;&lt;br /&gt;    &amp;lt;/serviceBehaviors&amp;gt;&lt;br /&gt;  &amp;lt;/behaviors&amp;gt;&lt;br /&gt;  &amp;lt;services&amp;gt;&lt;br /&gt;    &amp;lt;service name=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"WCFWebHttp.ProductionService"&lt;/span&gt;&lt;span style="color: #000000;"&gt; behaviorConfiguration=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"ProductionServiceBehavior"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;br /&gt;    &amp;lt;/service&amp;gt;&lt;br /&gt;  &amp;lt;/services&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Now, all I need to do is to implement my APIKeyAuthorization class. This class inherits from ServiceAuthorizationManager and overrides &lt;span style="font-weight:bold;"&gt;CheckAccessCore&lt;/span&gt; to validate the request and send an Error response if not validated.&lt;br /&gt;For detailed information about this class see the original article on:&lt;br /&gt;&lt;a href="http://blogs.msdn.com/b/rjacobs/archive/2010/06/14/how-to-do-api-key-verification-for-rest-services-in-net-4.aspx"&gt;MSDN&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-3337727104727541342?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/3337727104727541342?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/3337727104727541342?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/xe4uKtHLYaQ/wcf-authenticate-by-apikey.html" title="WCF Authenticate by APIKey" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/04/wcf-authenticate-by-apikey.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8AQ306eip7ImA9WhZRFU4.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-9077102939274245422</id><published>2011-04-11T16:50:00.003+02:00</published><updated>2011-04-11T16:57:22.312+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-11T16:57:22.312+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Routing" /><category scheme="http://www.blogger.com/atom/ns#" term="WCF" /><title>Routing WCF services by code</title><content type="html">When you want to route the requests to specific WCF service deppending on the url, you can add routers on the Application_Start method of the Global.asax.cs. In the following example I want my ProductionService handle the service calls on the path starting with /Production/ and my PublicService handle the requests with a path starting with /public/demo/&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;pre&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.Web.Routing;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;using&lt;/span&gt;&lt;span style="color: #000000;"&gt; System.ServiceModel.Activation;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Global : System.Web.HttpApplication&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; Application_Start(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt; sender, EventArgs e)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;#region&lt;/span&gt;&lt;span style="color: #000000;"&gt; Register Routes&lt;br /&gt;        var factory = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; WebServiceHostFactory();&lt;br /&gt;        RouteTable.Routes.Add(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ServiceRoute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Production"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, factory, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(ProductionService)));&lt;br /&gt;        RouteTable.Routes.Add(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ServiceRoute(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Public/demo/"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, factory, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(PublicService)));&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;#endregion&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;    }&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-9077102939274245422?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/9077102939274245422?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/9077102939274245422?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/nOLixPvug-Q/routing-wcf-services-by-code.html" title="Routing WCF services by code" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/04/routing-wcf-services-by-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkQHQ3k4cCp7ImA9WhZREU0.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-3259808464193469952</id><published>2011-04-06T17:16:00.003+02:00</published><updated>2011-04-06T17:38:52.738+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-06T17:38:52.738+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPF" /><category scheme="http://www.blogger.com/atom/ns#" term="Animation" /><category scheme="http://www.blogger.com/atom/ns#" term="EasingFunction" /><title>Animate Image Left To Right</title><content type="html">The basics of any animation is moving something from one location to the other. In this code snippet I use to Image elements to slide away previously selected image and slide in the newly selected one.&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;div&gt;The Image elements need to sit in a Canvas in order to let the Left property make sence.&lt;/div&gt;&lt;div&gt;    &lt;pre&gt;&lt;span style="color: #000000;"&gt;&amp;lt;Label x:Name=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"txtFile"&lt;/span&gt;&lt;span style="color: #000000;"&gt;  HorizontalAlignment=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Stretch"&lt;/span&gt;&lt;span style="color: #000000;"&gt;  /&amp;gt;&lt;br /&gt;&amp;lt;Canvas HorizontalAlignment=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Stretch"&lt;/span&gt;&lt;span style="color: #000000;"&gt; VerticalAlignment=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"Stretch"&lt;/span&gt;&lt;span style="color: #000000;"&gt;&amp;gt;&lt;br /&gt;    &lt;br /&gt;    &amp;lt;Image x:Name=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"newImage"&lt;/span&gt;&lt;span style="color: #000000;"&gt; Canvas.Left=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"0"&lt;/span&gt;&lt;span style="color: #000000;"&gt; Canvas.Top=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"0"&lt;/span&gt;&lt;span style="color: #000000;"&gt;  /&amp;gt;&lt;br /&gt;    &amp;lt;Image x:Name=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"oldImage"&lt;/span&gt;&lt;span style="color: #000000;"&gt;  Canvas.Left=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"0"&lt;/span&gt;&lt;span style="color: #000000;"&gt; Canvas.Top=&lt;/span&gt;&lt;span style="color: #800000;"&gt;"0"&lt;/span&gt;&lt;span style="color: #000000;"&gt; /&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;/Canvas&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;assuming that I have already given the previously selected image, my new image file will be given through a function call like &lt;blockquote&gt;AnimateLeftToRight(selectedFile);&lt;/blockquote&gt;&lt;br /&gt;This method will swap the images and create a storyboard to begin animating. I start the newImage from x-position that equals to minus Window.Width and the old one starts from 0 and moves to Window.Width:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; Begins a story which animates two images from left to right&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; the old image takes the source from te new image just before assigning the new one&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; and they move together in the distance of Window.Width&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="path"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;the path of the new image&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; AnimateLeftToRight(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; path)&lt;br /&gt;{&lt;br /&gt;    oldImage.Source = newImage.Source;&lt;br /&gt;    newImage.Source = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; BitmapImage(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Uri(path));&lt;br /&gt;&lt;br /&gt;    var myStoryboard = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Storyboard();&lt;br /&gt;&lt;br /&gt;    myStoryboard.Children.Add(MakeAnimation(-&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Width, &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #800000;"&gt;"newImage"&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;    myStoryboard.Children.Add(MakeAnimation(&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;0&lt;/span&gt;&lt;span style="color: #000000;"&gt;, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Width, &lt;/span&gt;&lt;span style="color: #800000;"&gt;"oldImage"&lt;/span&gt;&lt;span style="color: #000000;"&gt;));&lt;br /&gt;&lt;br /&gt;    myStoryboard.Begin(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;Making animation can be done in different ways using different EasingFunction, But this one looked easy to understand and look nice on my example:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    &lt;pre&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; Creates a DoubleAnimation that moves the target from left to right&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="from"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;starting point X&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="to"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;ending point X&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="target"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;the target element to set the x to &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;the created animation&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; DoubleAnimation MakeAnimation(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; from, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; to, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt; target)&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;const&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;double&lt;/span&gt;&lt;span style="color: #000000;"&gt; durationSeconds = &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;1&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;&lt;br /&gt;    var animation = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; DoubleAnimation&lt;br /&gt;                        {&lt;br /&gt;                            Duration = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; Duration(TimeSpan.FromSeconds(durationSeconds)),&lt;br /&gt;                            AutoReverse = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;,&lt;br /&gt;                            From = from,&lt;br /&gt;                            To = to,&lt;br /&gt;                            EasingFunction = &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; PowerEase()&lt;br /&gt;                                                 {&lt;br /&gt;                                                     EasingMode = EasingMode.EaseInOut,&lt;br /&gt;                                                     Power = &lt;/span&gt;&lt;span style="color: #FF0000;"&gt;5&lt;/span&gt;&lt;span style="color: #000000;"&gt;&lt;br /&gt;                                                 }&lt;br /&gt;                        };&lt;br /&gt;&lt;br /&gt;    Storyboard.SetTargetName(animation, target);&lt;br /&gt;    Storyboard.SetTargetProperty(animation, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; PropertyPath(Canvas.LeftProperty));&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; animation;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-3259808464193469952?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/3259808464193469952?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/3259808464193469952?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/gtMBF10uaSE/animate-image-left-to-right.html" title="Animate Image Left To Right" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/04/animate-image-left-to-right.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUINRXw-cSp7ImA9WhZREEU.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-8960047498939467668</id><published>2011-03-15T15:24:00.003+01:00</published><updated>2011-04-06T11:53:14.259+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-06T11:53:14.259+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="WPF" /><title>Geometry and Mini-Language</title><content type="html">&lt;div&gt;StreamGeometry is a light-weight alternative to the PathGeometry class for&lt;/div&gt;&lt;div&gt;&lt;div&gt;creating complex geometric shapes. You can use StreamGeometry when you&lt;/div&gt;&lt;div&gt;need to describe a complex geometry but don’t want the overhead of supporting&lt;/div&gt;&lt;div&gt;data binding, animation, and modification.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;There are two classes in WPF that provide the mini-language for describing&lt;/div&gt;&lt;div&gt;geometric paths: StreamGeometry, and PathFigureCollection. You need to use&lt;/div&gt;&lt;div&gt;the StreamGeometry mini-language when you set a property of the Geometry&lt;/div&gt;&lt;div&gt;type, such as the Data property of a Path element.&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;path stroke="Blue" data="M 100 120 L 200 120 L 200 220 L 100 170"&amp;gt;&lt;br /&gt;&amp;lt;/path&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;This path uses a sequence of four commands. The first command, M, creates the&lt;br /&gt;PathFigure and sets the starting point to (100, 120). The following three&lt;br /&gt;commands (L) create line segments.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;See also Mini-Language in &lt;a href="http://msdn.microsoft.com/en-us/library/ms752293.aspx"&gt;MSDN&lt;/a&gt;&lt;br /&gt;&lt;div&gt;From the book of &lt;i&gt;Practical WPF Graphics Programming&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;L endPoint : The end point of the line.&lt;br /&gt;H x : The x-coordinate of the end point of the line.&lt;br /&gt;V y : The y-coordinate of the end point of the line.&lt;br /&gt;&lt;br /&gt;F0 specifies the EvenOdd fill rule.&lt;br /&gt;F1 specifies the Nonzero fill rule.&lt;br /&gt;An uppercase M indicates that startPoint is an absolute value; a lowercase m indicates that startPoint is an offset to the previous point&lt;br /&gt;&lt;br /&gt;C controlPoint1 controlPoint2 endPoint : Cubic Bezier Curve Command&lt;br /&gt;A size rotationAngle isLargeArcFlag sweepDirectionFlag endPoint : Creates an elliptical arc between the current point and the specified end point.&lt;br /&gt;&lt;br /&gt;Z : Ends the current figure and creates a line that connects the current point to the starting point of the figure. &lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-8960047498939467668?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/8960047498939467668?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/8960047498939467668?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/0hxSTOJguQI/geometry-and-mini-language.html" title="Geometry and Mini-Language" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/03/geometry-and-mini-language.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYAR3Y5fSp7ImA9WhZWGE8.&quot;"><id>tag:blogger.com,1999:blog-3171526930201997488.post-6478035884076553911</id><published>2011-03-11T14:09:00.004+01:00</published><updated>2011-05-19T18:39:06.825+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-19T18:39:06.825+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="Memory Leak" /><category scheme="http://www.blogger.com/atom/ns#" term="WeakEventManager" /><title>Did i say "I've got memory leak"?</title><content type="html">Dealing with &lt;b&gt;memory leak&lt;/b&gt; is not as far as some might think it is. But it doesn't get serious until it is very late to change the fundamentals of our software design. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In my recent project it happened to be caused by &lt;i&gt;traditional event subscription pattern&lt;/i&gt;. Which is most likely not leaving any memory leak behind, but it could easily do so :-(&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I also looked into latest libraries of Microsoft and saw they are using a new way of subscribing event handler  to GUI events in WPF.  Further I saw that every Window, like any Visual object in WPF, is derrived from &lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.threading.dispatcherobject.aspx"&gt;DispatcherObject &lt;/a&gt;&lt;/b&gt;and is also implementing &lt;b&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.iweakeventlistener.aspx"&gt;IWeakEventListener&lt;/a&gt;&lt;/b&gt;; hummmmmm!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I've decided to create my first &lt;a href="http://msdn.microsoft.com/en-us/library/system.windows.weakeventmanager.aspx"&gt;WeakEventManager &lt;/a&gt;and followed the instructions by &lt;a href="http://reedcopsey.com/2009/08/06/preventing-event-based-memory-leaks-weakeventmanager/"&gt;Reed Copsey Jr&lt;/a&gt;. in his blog&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;You can instanciate several instances of different event listeners and let the manager route the events to all of them. As long as they all implement IWeakEventListener.ReceiveWeakEvent&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;To demonstrate this I started a sample code about human body. Assume you have a heart class and a hand class. If you have an instance of them and you need to get events on your hand when the heart beats you might do something like:&lt;br /&gt;&lt;code&gt;hear.BeatEvent += right.BeatHandler&lt;/code&gt;&lt;br /&gt;The idea is to change this aby using an event manager, in my sample I have called it Brain, to handle de notifications like &lt;br /&gt;&lt;code&gt;Brain.AddListener(heart, right);&lt;/code&gt;&lt;br /&gt;And to unsubscribe to the event you do something like&lt;br /&gt;&lt;code&gt;Brain.RemoveListener(heart, right);&lt;/code&gt;&lt;br /&gt;&lt;br/&gt;&lt;br /&gt;To make this possible, you need to make sure that your Hand class where the events need to be handled, you implement the IWeakEventListener interface which brings us to ReceiveWeakEvent method:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; Receives events from the centralized event manager. &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;returns&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; true if the listener handled the event.  &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="managerType"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;The type of the &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;see cref="T:System.Windows.WeakEventManager"/&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; calling this method.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="sender"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Object that originated the event.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="e"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Event data.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;bool&lt;/span&gt;&lt;span style="color: #000000;"&gt; ReceiveWeakEvent(Type managerType, &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt; sender, EventArgs e)&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (managerType == &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;&lt;span style="color: #000000;"&gt;(Brain))&lt;br /&gt;    {&lt;br /&gt;        var beat = e &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; BeatArgs;&lt;br /&gt;        Trace.WriteLine(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&lt;span style="color: #000000;"&gt;.Format(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"{0} hand is getting the beat from {1}"&lt;/span&gt;&lt;span style="color: #000000;"&gt;, name, beat.TimeOfBeat.ToString(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"hh:mm:ss"&lt;/span&gt;&lt;span style="color: #000000;"&gt;)));&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;&lt;span style="color: #000000;"&gt;;&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;The Brain class which has a Singleton implementation provides only two public methods i.e. &lt;code&gt;AddListener&lt;/code&gt; and &lt;code&gt;RemoveListener&lt;/code&gt;. They do this by calling the protected methods and passing the parameters:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Subscribe a body part to listen to heart beat &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="source"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;the heart to listen to&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="listener"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;the body that subscribes&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; AddListener(Heart source, IWeakEventListener listener)&lt;br /&gt;{&lt;br /&gt;    Neuron.ProtectedAddListener(source, listener);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Unsubscribe a body part to listen to heart beat &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="source"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;the heart to listen to&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="listener"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;the body that subscribes&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;static&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; RemoveListener(Heart source, IWeakEventListener listener)&lt;br /&gt;{&lt;br /&gt;    Neuron.ProtectedRemoveListener(source, listener);&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;That is not all what brain do internally. It is actually inheriting the abstract class &lt;code&gt;WeakEventManager&lt;/code&gt; and in order to do that it overrides the &lt;code&gt;StartListening &lt;/code&gt;and &lt;code&gt;StopListening&lt;/code&gt; methods that are internally called when it should be.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Starts listening on the provided heart for the managed beat event.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="source"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;The heart to disconnect beat event&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; StartListening(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt; source)&lt;br /&gt;{&lt;br /&gt;    var heart = source &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; Heart;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (heart == &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;throw&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ArgumentException(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"The brain suppose to listen to heart only"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;br /&gt;    heart.BeatEventHandler += DeliverEvent;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Stops listening on the provided heart for the managed beat event.&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="source"&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;The heart to disconnect beat event&lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;override&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; StopListening(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;object&lt;/span&gt;&lt;span style="color: #000000;"&gt; source)&lt;br /&gt;{&lt;br /&gt;    var heart = source &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;as&lt;/span&gt;&lt;span style="color: #000000;"&gt; Heart;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (heart == &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;) &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;throw&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; ArgumentException(&lt;/span&gt;&lt;span style="color: #800000;"&gt;"The brain suppose to listen to heart only"&lt;/span&gt;&lt;span style="color: #000000;"&gt;);&lt;br /&gt;&lt;br /&gt;    heart.BeatEventHandler -= DeliverEvent;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The last part is the Heart where the event is getting fired. That is nothing special and can be implemented as before.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt; Can beat and can e subscribed to the beat event handler &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;partial&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&lt;span style="color: #000000;"&gt; Heart&lt;br /&gt;{&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Hanldler for notifying a beat  &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;event&lt;/span&gt;&lt;span style="color: #000000;"&gt; EventHandler&amp;lt;BeatArgs&amp;gt; BeatEventHandler;&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Sends the beat through the events  &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;param name="beatArgs"&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;protected&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; OnSendBeat(BeatArgs beatArgs)&lt;br /&gt;    {&lt;br /&gt;        &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="color: #000000;"&gt; (BeatEventHandler != &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;null&lt;/span&gt;&lt;span style="color: #000000;"&gt;)&lt;br /&gt;            BeatEventHandler(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="color: #000000;"&gt;, beatArgs);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color: #808080;"&gt;///&lt;/span&gt;&lt;span style="color: #008000;"&gt; &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;Create a beat and send it &lt;/span&gt;&lt;span style="color: #808080;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #000000;"&gt;    &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&lt;span style="color: #000000;"&gt; &lt;/span&gt;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&lt;span style="color: #000000;"&gt; BeatOnce()&lt;br /&gt;    {&lt;br /&gt;        OnSendBeat(&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&lt;span style="color: #000000;"&gt; BeatArgs());&lt;br /&gt;    }&lt;br /&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3171526930201997488-6478035884076553911?l=wdevs.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/6478035884076553911?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/3171526930201997488/posts/default/6478035884076553911?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Wdevs/~3/AhwurW9KxsY/did-i-say-ive-got-memory-leak.html" title="Did i say &quot;I've got memory leak&quot;?" /><author><name>Asghar Panahy</name><uri>http://www.blogger.com/profile/01617558889185388258</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://3.bp.blogspot.com/-snTa9IwdWqM/TirNnkVQrCI/AAAAAAAAELs/AcA49XH9-yA/s220/DSCN0322Small.png" /></author><feedburner:origLink>http://wdevs.blogspot.com/2011/03/did-i-say-ive-got-memory-leak.html</feedburner:origLink></entry></feed>

