<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://aspadvice.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">AzamSharp</title><subtitle type="html">Some day I will know everything I hope that day never comes</subtitle><id>http://aspadvice.com/blogs/azamsharp/atom.aspx</id><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/default.aspx" /><link rel="self" type="application/atom+xml" href="http://aspadvice.com/blogs/azamsharp/atom.aspx" /><generator uri="http://communityserver.org" version="2.1.60809.935">Community Server</generator><updated>2007-10-20T23:08:19Z</updated><entry><title>My Wife Started a Blog :)</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx</id><published>2007-11-06T19:06:01Z</published><updated>2007-11-06T19:06:01Z</updated><content type="html">&lt;p&gt;I think my wife is also transforming into a GEEK (not computer geek!). She has recently started her own blog on &lt;a href="http://www.blogger.com"&gt;www.blogger.com&lt;/a&gt;. If you are interested in reading something non-technical and extremely interesting then browse through her posts.&lt;/p&gt; &lt;p&gt;&lt;a href="http://nailasdiary.blogspot.com/"&gt;http://nailasdiary.blogspot.com/&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx&amp;amp;;subject=My+Wife+Started+a+Blog+%3a)" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx&amp;amp;;title=My+Wife+Started+a+Blog+%3a)" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx&amp;amp;title=My+Wife+Started+a+Blog+%3a)" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx&amp;amp;;title=My+Wife+Started+a+Blog+%3a)" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx&amp;amp;;title=My+Wife+Started+a+Blog+%3a)&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/06/My-Wife-Started-a-Blog-_3A002900_.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36294" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Firing the ASP.NET 2.0 Callback Method Right After Registering!!</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx</id><published>2007-11-05T21:39:51Z</published><updated>2007-11-05T21:39:51Z</updated><content type="html">&lt;p&gt;When I was creating the Polling module I need to fire the server method right after registering the callback method. I thought this would be simple&amp;nbsp;as I just needed to call the method right after registering. Well, not really let's check out the code below: &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; RegisterCallbacks()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; sbReference = Page.ClientScript.GetCallbackEventReference(&lt;font color="#0000ff"&gt;this&lt;/font&gt;, &lt;font color="#a31515"&gt;"arg"&lt;/font&gt;, &lt;font color="#a31515"&gt;"ReceiveServerData"&lt;/font&gt;, &lt;font color="#a31515"&gt;"context"&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; cbScript = &lt;font color="#2b91af"&gt;String&lt;/font&gt;.Empty;&lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;// check if the script is already registered or not&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (!Page.ClientScript.IsClientScriptBlockRegistered(&lt;font color="#a31515"&gt;"CallServer"&lt;/font&gt;))&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;cbScript = &lt;font color="#a31515"&gt;@" function CallServer(arg,context) { "&lt;/font&gt; + sbReference + &lt;font color="#a31515"&gt;"} makeServerCall(); "&lt;/font&gt;; &lt;/p&gt; &lt;p&gt;Page.ClientScript.RegisterClientScriptBlock(&lt;font color="#0000ff"&gt;this&lt;/font&gt;.GetType(), &lt;font color="#a31515"&gt;"CallServer"&lt;/font&gt;, cbScript, &lt;font color="#0000ff"&gt;true&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;In the code above I am firing the method "makeServerCall" right after registering the callback method. The method makeServerCall simply calls the "CallServer" method which should trigger the callback. Unfortunately, for some reason this does not happen. &lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;head&lt;/font&gt; &lt;font color="#ff0000"&gt;runat&lt;/font&gt;&lt;font color="#0000ff"&gt;="server"&amp;gt;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;title&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;Untitled Page&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;title&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;script&lt;/font&gt; &lt;font color="#ff0000"&gt;language&lt;/font&gt;&lt;font color="#0000ff"&gt;="javascript"&lt;/font&gt; &lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;="text/javascript"&amp;gt;&lt;/p&gt; &lt;p&gt;function&lt;/font&gt; ReceiveServerData(response) &lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;alert(response);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;function&lt;/font&gt; makeServerCall() &lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&lt;font size="3"&gt;CallServer(&lt;font color="#a31515"&gt;''&lt;/font&gt;,&lt;font color="#a31515"&gt;''&lt;/font&gt;);&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;script&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;head&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;The CallServer method never gets fired. Amazingly, if I simply put a alert inside the "makeServerCall" then the alert message displays correctly. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;To solve this problem I used the window.setTimeout function as shown below: &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; RegisterCallbacks()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; sbReference = Page.ClientScript.GetCallbackEventReference(&lt;font color="#0000ff"&gt;this&lt;/font&gt;, &lt;font color="#a31515"&gt;"arg"&lt;/font&gt;, &lt;font color="#a31515"&gt;"ReceiveServerData"&lt;/font&gt;, &lt;font color="#a31515"&gt;"context"&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; cbScript = &lt;font color="#2b91af"&gt;String&lt;/font&gt;.Empty;&lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;// check if the script is already registered or not&lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (!Page.ClientScript.IsClientScriptBlockRegistered(&lt;font color="#a31515"&gt;"CallServer"&lt;/font&gt;))&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;cbScript = &lt;font color="#a31515"&gt;@" function CallServer(arg,context) { "&lt;/font&gt; + sbReference + &lt;font color="#a31515"&gt;"} &lt;strong&gt;&lt;font size="3"&gt;window.setTimeout(makeServerCall,100);&lt;/font&gt;&lt;/strong&gt; "&lt;/font&gt;; &lt;/p&gt; &lt;p&gt;Page.ClientScript.RegisterClientScriptBlock(&lt;font color="#0000ff"&gt;this&lt;/font&gt;.GetType(), &lt;font color="#a31515"&gt;"CallServer"&lt;/font&gt;, cbScript, &lt;font color="#0000ff"&gt;true&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;font color="#000000"&gt;And now it works correctly! &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#000000"&gt;I am not sure what causes this problem yet! Feel free to drop your comments and resolve this issue. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/font&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx&amp;amp;;subject=Firing+the+ASP.NET+2.0+Callback+Method+Right+After+Registering!!" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx&amp;amp;;title=Firing+the+ASP.NET+2.0+Callback+Method+Right+After+Registering!!" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx&amp;amp;title=Firing+the+ASP.NET+2.0+Callback+Method+Right+After+Registering!!" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx&amp;amp;;title=Firing+the+ASP.NET+2.0+Callback+Method+Right+After+Registering!!" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx&amp;amp;;title=Firing+the+ASP.NET+2.0+Callback+Method+Right+After+Registering!!&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Firing-the-ASP.NET-2.0-Callback-Method-Right-After-Registering_21002100_.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36277" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Venkat Subramaniam FITting into Agile Houston</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx</id><published>2007-11-05T21:07:36Z</published><updated>2007-11-05T21:07:36Z</updated><content type="html">&lt;p&gt;Agile Houston invites &lt;a href="http://www.agiledeveloper.com/blog/"&gt;Venkat Subramaniam&lt;/a&gt; to give a session on &lt;a href="http://fit.c2.com/"&gt;FIT&lt;/a&gt; (Framework for Integrated Test). I have never attended the Agile Houston group before but I think it will be a blast. So, if you are in Houston area be sure to visit this session. You can find more information using the link below: &lt;/p&gt; &lt;p&gt;&lt;a href="http://agilehouston.org/Main/GetFIT"&gt;Information&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx&amp;amp;;subject=Venkat+Subramaniam+FITting+into+Agile+Houston" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx&amp;amp;;title=Venkat+Subramaniam+FITting+into+Agile+Houston" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx&amp;amp;title=Venkat+Subramaniam+FITting+into+Agile+Houston" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx&amp;amp;;title=Venkat+Subramaniam+FITting+into+Agile+Houston" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx&amp;amp;;title=Venkat+Subramaniam+FITting+into+Agile+Houston&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/05/Venkat-Subramaniam-FITting-into-Agile-Houston.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36274" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Creating JSON String Using DataContractJsonSerializer Class</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx</id><published>2007-11-05T01:12:32Z</published><updated>2007-11-05T01:12:32Z</updated><content type="html">&lt;p&gt;ASP.NET AJAX framework includes the&amp;nbsp;System.Web.Script.Serialization which helps to serialize the .NET object to a JSON representation string. I am using ASP.NET 2.0 callbacks to call the server side method using the client side code. &lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;// Create JSON String &lt;/p&gt;&lt;/font&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; CreateJSONString()&lt;/p&gt; &lt;p&gt;{ &lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;StringBuilder&lt;/font&gt; sb = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;StringBuilder&lt;/font&gt;(); &lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;Customer&lt;/font&gt; customer = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;Customer&lt;/font&gt;(); &lt;/p&gt; &lt;p&gt;customer.FirstName = &lt;font color="#a31515"&gt;"Mohammad"&lt;/font&gt;; &lt;/p&gt; &lt;p&gt;customer.LastName = &lt;font color="#a31515"&gt;"Azam"&lt;/font&gt;;&lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;List&lt;/font&gt;&amp;lt;&lt;font color="#2b91af"&gt;Customer&lt;/font&gt;&amp;gt; list = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;List&lt;/font&gt;&amp;lt;&lt;font color="#2b91af"&gt;Customer&lt;/font&gt;&amp;gt;();&lt;/p&gt; &lt;p&gt;list.Add(customer);&lt;/p&gt; &lt;p&gt;list.Add(&lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;Customer&lt;/font&gt;(&lt;font color="#a31515"&gt;"John"&lt;/font&gt;, &lt;font color="#a31515"&gt;"Doe"&lt;/font&gt;));&lt;/p&gt; &lt;p&gt;list.Add(&lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;Customer&lt;/font&gt;(&lt;font color="#a31515"&gt;"Mary"&lt;/font&gt;, &lt;font color="#a31515"&gt;"Kate"&lt;/font&gt;));&amp;nbsp;&lt;/p&gt; &lt;p&gt;System.Runtime.Serialization.&lt;font color="#2b91af"&gt;DataContractJsonSerializer&lt;/font&gt; json =&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;new&lt;/font&gt; System.Runtime.Serialization.&lt;font color="#2b91af"&gt;DataContractJsonSerializer&lt;/font&gt;(list.GetType());&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;MemoryStream&lt;/font&gt; ms = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;MemoryStream&lt;/font&gt;(); &lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;XmlDictionaryWriter&lt;/font&gt; writer = &lt;font color="#2b91af"&gt;JsonReaderWriterFactory&lt;/font&gt;.CreateJsonWriter(ms);&lt;/p&gt; &lt;p&gt;json.WriteObject(ms,list);&lt;/p&gt; &lt;p&gt;writer.Flush();&amp;nbsp;&lt;/p&gt; &lt;p&gt;_jsonString = &lt;font color="#2b91af"&gt;Encoding&lt;/font&gt;.Default.GetString(ms.GetBuffer());&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;_jsonString is a simple class level variable which is used to get the final JSON string. Finally, the JSON string is returned by the GetCallbackResult method. When using the DataContractJsonSerializer class your class should use DataContract and DataMember attributes as I have shown below: &lt;/p&gt; &lt;p&gt;[&lt;font color="#2b91af"&gt;DataContract&lt;/font&gt;]&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; &lt;font color="#2b91af"&gt;Customer&lt;/p&gt;&lt;/font&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;int&lt;/font&gt; _id;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; _firstName;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; _lastName;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;int&lt;/font&gt; Id&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt; { &lt;font color="#0000ff"&gt;return&lt;/font&gt; _id; }&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt; { _id = &lt;font color="#0000ff"&gt;value&lt;/font&gt;; }&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;[&lt;font color="#2b91af"&gt;DataMember&lt;/font&gt;]&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; FirstName&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt; { &lt;font color="#0000ff"&gt;return&lt;/font&gt; _firstName; }&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt; { _firstName = &lt;font color="#0000ff"&gt;value&lt;/font&gt;; }&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;[&lt;font color="#2b91af"&gt;DataMember&lt;/font&gt;]&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; LastName&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;get&lt;/font&gt; { &lt;font color="#0000ff"&gt;return&lt;/font&gt; _lastName; }&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;set&lt;/font&gt; { _lastName = &lt;font color="#0000ff"&gt;value&lt;/font&gt;; }&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; Customer(&lt;font color="#0000ff"&gt;string&lt;/font&gt; firstName, &lt;font color="#0000ff"&gt;string&lt;/font&gt; lastName)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;_firstName = firstName;&lt;/p&gt; &lt;p&gt;_lastName = lastName; &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; Customer()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; GetCallbackResult()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt; _jsonString; &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;Now, on the client side we just get the data (JSON String) and creates the interface. &lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;function&lt;/font&gt; ReceiveServerData(response) &lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; customers = eval(&lt;font color="#a31515"&gt;"("&lt;/font&gt; + response + &lt;font color="#a31515"&gt;")"&lt;/font&gt;); &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; ul = document.createElement(&lt;font color="#a31515"&gt;"ul"&lt;/font&gt;); &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt;(i=0; i&amp;lt;customers.length; i++) &lt;/p&gt; &lt;p&gt;{ &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; li = document.createElement(&lt;font color="#a31515"&gt;"li"&lt;/font&gt;); &lt;/p&gt; &lt;p&gt;li.innerHTML = customers[i].FirstName + &lt;font color="#a31515"&gt;" "&lt;/font&gt; + customers[i].LastName; &lt;/p&gt; &lt;p&gt;ul.appendChild(li); &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;// customerList is a DIV element&lt;/p&gt;&lt;/font&gt; &lt;p&gt;document.getElementById(&lt;font color="#a31515"&gt;"customerList"&lt;/font&gt;).appendChild(ul); &lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;ASP.NET AJAX framework also includes the JavaScriptSerializer class which can be used to serialize the objects to JSON string. Check out the code below: &lt;/p&gt;&lt;font color="#2b91af"&gt; &lt;p&gt;JavaScriptSerializer&lt;/font&gt; js = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;JavaScriptSerializer&lt;/font&gt;();&lt;/p&gt; &lt;p&gt;js.Serialize(list, sb);&lt;/p&gt; &lt;p&gt;_jsonString = sb.ToString(); &lt;/p&gt; &lt;p&gt;Much simple but obsolete ;) &lt;/p&gt; &lt;p&gt;I also created the screencast which covered the second way of creating JSON string. You can view the screencast using the following link: &lt;/p&gt;&lt;a href="http://www.gridviewguy.com/ArticleDetails.aspx?articleID=327"&gt;Using JavaScriptSerializer Class to Serialize Objects to JSON&lt;/a&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx&amp;amp;;subject=Creating+JSON+String+Using+DataContractJsonSerializer+Class" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx&amp;amp;;title=Creating+JSON+String+Using+DataContractJsonSerializer+Class" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx&amp;amp;title=Creating+JSON+String+Using+DataContractJsonSerializer+Class" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx&amp;amp;;title=Creating+JSON+String+Using+DataContractJsonSerializer+Class" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx&amp;amp;;title=Creating+JSON+String+Using+DataContractJsonSerializer+Class&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/04/Creating-JSON-String-Using-DataContractJsonSerializer-Class.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36259" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Which ORM Framework Would You Prefer?</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx</id><published>2007-11-03T20:04:16Z</published><updated>2007-11-03T20:04:16Z</updated><content type="html">&lt;p&gt;A new poll has been created on GridViewGuy. You can visit GridViewGuy and cast your vote. &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx&amp;amp;;subject=Which+ORM+Framework+Would+You+Prefer%3f" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx&amp;amp;;title=Which+ORM+Framework+Would+You+Prefer%3f" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx&amp;amp;title=Which+ORM+Framework+Would+You+Prefer%3f" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx&amp;amp;;title=Which+ORM+Framework+Would+You+Prefer%3f" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx&amp;amp;;title=Which+ORM+Framework+Would+You+Prefer%3f&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/03/Which-ORM-Framework-Would-You-Prefer_3F00_.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36231" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Choosing an Ajax Framework Performance vs Easability</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx</id><published>2007-11-02T21:40:19Z</published><updated>2007-11-02T21:40:19Z</updated><content type="html">&lt;p&gt;A week ago I started a poll in which I asked "Which Ajax framework do you mostly use?" with the following choices: &lt;/p&gt; &lt;p&gt;&lt;tr&gt;&lt;td class="choiceStyle"&gt;ASP.NET AJAX&lt;/p&gt; &lt;p&gt;&lt;/td&gt;&lt;td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="choiceStyle"&gt;AJAX PRO Library&lt;/p&gt; &lt;p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="choiceStyle"&gt;Anthem.NET&amp;nbsp;&lt;/td&gt;&lt;td&gt;&lt;/p&gt; &lt;p&gt;Plain XmlHttp Object&lt;/p&gt; &lt;p&gt;The winner by a long margin was the MS&amp;nbsp;ASP.NET AJAX. Surprising! not really. MS ASP.NET AJAX&amp;nbsp;framework&amp;nbsp;might not be the slickest framework in the market but without any double it is one of the easiest one to use. The real power lies in the UpdatePanel control which can update a portion of the page using client side postbacks. Just put your control inside the UpdatePanel and it will do the rest (at least for most of the cases). &lt;/p&gt; &lt;p&gt;Performance wise ASP.NET Ajax framework is not good. There are couple of reasons. First the size of the Client Framework&amp;nbsp;JavaScript library is pretty huge. Second although it is asynchronous it does follow the complete life cycle of the page which kills the performance. The selling point of the&amp;nbsp;MS ASP.NET AJAX is that it took away the complexity to build the updated user interface. &lt;/p&gt; &lt;p&gt;Let's consider a&amp;nbsp;real&amp;nbsp;world scenario. The&amp;nbsp;poll control which is displayed on the GridViewGuy is &lt;strong&gt;NOT&lt;/strong&gt; using the ASP.NET AJAX framework. It uses ASP.NET 2.0 client callbacks to make XmlHttp requests to the server's method. Each time you mark a choice and submit your vote I build the user interface for the result of the poll on the server side. The processing can be done on the client but that requires lot of JavaScript. Anyway, MS ASP.NET AJAX helps you to forget about the updated interface as the UpdatePanel takes care of that and because the whole page life cycle is repeated with the ViewState and stuff. &lt;/p&gt; &lt;p&gt;So, which Ajax framework should you use? &lt;/p&gt; &lt;p&gt;My humble answer will be to mix it up. Use MS AJAX where the user interface update is complex and use ASP.NET client callbacks OR third party libraries&amp;nbsp;when making simple calls and making simple updates. The reason I pressed on using ASP.NET AJAX when the interface is complex is because you definitely don't want to create the interface again. So, leave this job for ASP.NET AJAX UpdatePanel. &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx&amp;amp;;subject=Choosing+an+Ajax+Framework+Performance+vs+Easability" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx&amp;amp;;title=Choosing+an+Ajax+Framework+Performance+vs+Easability" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx&amp;amp;title=Choosing+an+Ajax+Framework+Performance+vs+Easability" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx&amp;amp;;title=Choosing+an+Ajax+Framework+Performance+vs+Easability" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx&amp;amp;;title=Choosing+an+Ajax+Framework+Performance+vs+Easability&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/02/Choosing-an-Ajax-Framework-Performance-vs-Easability.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36230" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>AJAX Application and Client Connectivity</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx</id><published>2007-11-01T22:43:00Z</published><updated>2007-11-01T22:43:00Z</updated><content type="html">&lt;p&gt;AJAX is a superb technology but it has some sharp edges. Here are couple of things that I came across when developing AJAX enabled applications. Let's say that you have a page which sends request to the server using ASP.NET 2.0 Client Callbacks (Behind the scenes the client callbacks calls the XmlHttp object but in a different way as the request is still processed on the server side). The request is send using a HTML input button control. &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; Page_Load(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt; e)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;// register callbacks &lt;/p&gt;&lt;/font&gt; &lt;p&gt;RegisterCallbacks();&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; RegisterCallbacks()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; script = &lt;font color="#2b91af"&gt;String&lt;/font&gt;.Empty;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; cbRef = ClientScript.GetCallbackEventReference(&lt;font color="#0000ff"&gt;this&lt;/font&gt;, &lt;font color="#a31515"&gt;"arg"&lt;/font&gt;, &lt;font color="#a31515"&gt;"callback"&lt;/font&gt;, &lt;font color="#2b91af"&gt;String&lt;/font&gt;.Empty);&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (!ClientScript.IsClientScriptBlockRegistered(&lt;font color="#a31515"&gt;"CallServer"&lt;/font&gt;))&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;script = &lt;font color="#a31515"&gt;"function makeServerCall(arg,context) {"&lt;/font&gt; + cbRef + &lt;font color="#a31515"&gt;"}"&lt;/font&gt;; &lt;/p&gt; &lt;p&gt;&lt;font color="#008000"&gt;// inject the script &lt;/p&gt;&lt;/font&gt; &lt;p&gt;ClientScript.RegisterClientScriptBlock(&lt;font color="#0000ff"&gt;this&lt;/font&gt;.GetType(), &lt;font color="#a31515"&gt;"CallServer"&lt;/font&gt;, script, &lt;font color="#0000ff"&gt;true&lt;/font&gt;); &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;} &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; GetCallbackResult()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;System.Threading.&lt;font color="#2b91af"&gt;Thread&lt;/font&gt;.Sleep(5000);&amp;nbsp;&amp;nbsp; // only for demonstration purposes&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt; _argument; &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; RaiseCallbackEvent(&lt;font color="#0000ff"&gt;string&lt;/font&gt; eventArgument)&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;_argument = eventArgument; &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Here is the button code that actually makes the request: &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;input&lt;/font&gt; &lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;="button"&lt;/font&gt; &lt;font color="#ff0000"&gt;value&lt;/font&gt;&lt;font color="#0000ff"&gt;="Call Server"&lt;/font&gt; &lt;font color="#ff0000"&gt;onclick&lt;/font&gt;&lt;font color="#0000ff"&gt;="callServer()"&lt;/font&gt; &lt;font color="#0000ff"&gt;/&amp;gt;&lt;/p&gt;&lt;/font&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;function&lt;/font&gt; callServer() &lt;/p&gt; &lt;p&gt;{ &lt;/p&gt; &lt;p&gt;makeServerCall(&lt;font color="#a31515"&gt;'Hello World'&lt;/font&gt;,&lt;font color="#a31515"&gt;''&lt;/font&gt;); &lt;/p&gt; &lt;p&gt;}&lt;/p&gt;&lt;font color="#0000ff"&gt; &lt;p&gt;function&lt;/font&gt; callback(response) &lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;alert(response); &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;Everything works fine until the user got disconnected from the internet or the application server goes down. Now, the user presses the input button and nothing happens. No data is returned since the data is assigned at the server side and since there is no connection or server is down&amp;nbsp;then there is no data returned. In this case the callback function is also not fired. &lt;/p&gt; &lt;p&gt;The question is how will you notify the user that nothing happened? How will you tell the user that "Hey! the user interface is dead!".&lt;strong&gt; I guess the answer is to notify the user that something has happened instead of notifying that something has not happened&lt;/strong&gt;.&amp;nbsp;The scenario that I discussed might be too vague for this example&amp;nbsp;but consider a&amp;nbsp;"School Testing Application" where the students are taking an online exam. They have 50-100 questions (multiple choice) and they select the&amp;nbsp;answer. As, soon&amp;nbsp;as the answer is selected the choice is saved in the database and&amp;nbsp;a message is displayed "Successfully Saved!".&amp;nbsp;If the message is not displayed then it means that there is some problem. You can also&amp;nbsp;reload the page after&amp;nbsp;every 5 minutes to get the fresh copy out of the database. This will put an extra protection of loosing unsaved answers. On the other hand if the user clicks two answers very quickly then there is a possibility that only one of them got saved. I have discussed this problem below:&lt;/p&gt; &lt;p&gt;Another common problem with using AJAX enabled applications is making two AJAX requests one after the other. This will cancel the first request and the later request will be made. In the code above I am purposely making the thread to sleep for 5 seconds now, if during that time another request comes then the old request will be killed. Dino Esposito also discussed this problem in his talk in DNR and he concluded that this is an architecture problem of ASP.NET framework.&lt;/p&gt; &lt;p&gt;What problems did you faced when developing an AJAX application and how did you solved it? &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx&amp;amp;;subject=AJAX+Application+and+Client+Connectivity" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx&amp;amp;;title=AJAX+Application+and+Client+Connectivity" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx&amp;amp;title=AJAX+Application+and+Client+Connectivity" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx&amp;amp;;title=AJAX+Application+and+Client+Connectivity" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx&amp;amp;;title=AJAX+Application+and+Client+Connectivity&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/11/01/AJAX-Application-and-Client-Connectivity.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36215" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Unit Testing Membership Provider</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx</id><published>2007-10-30T21:28:10Z</published><updated>2007-10-30T21:28:10Z</updated><content type="html">&lt;p&gt;I was working on my demo application when I needed to test a Custom Membership Provider. Here is a small piece of code that tests whether the user got created or not. &lt;/p&gt; &lt;p&gt;[&lt;font color="#2b91af"&gt;TestFixture&lt;/font&gt;]&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;class&lt;/font&gt; &lt;font color="#2b91af"&gt;UserTestFixture&lt;/p&gt;&lt;/font&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;[&lt;font color="#2b91af"&gt;Test&lt;/font&gt;]&lt;/p&gt; &lt;p&gt;[&lt;font color="#2b91af"&gt;RollBack&lt;/font&gt;]&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; CanAddUser()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; userName = &lt;font color="#a31515"&gt;"JohnDoetest"&lt;/font&gt;;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; password = &lt;font color="#a31515"&gt;"something123$"&lt;/font&gt;;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; email = &lt;font color="#a31515"&gt;"johndoetest@gmail.com"&lt;/font&gt;; &lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;BolayToMembershipProvider&lt;/font&gt; provider = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;BolayToMembershipProvider&lt;/font&gt;();&lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;NameValueCollection&lt;/font&gt; config = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;NameValueCollection&lt;/font&gt;();&lt;/p&gt; &lt;p&gt;config.Add(&lt;font color="#a31515"&gt;"applicationName"&lt;/font&gt;, &lt;font color="#a31515"&gt;"BolayTo"&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;config.Add(&lt;font color="#a31515"&gt;"name"&lt;/font&gt;, &lt;font color="#a31515"&gt;"BolayToMembershipProvider"&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;config.Add(&lt;font color="#a31515"&gt;"connectionStringName"&lt;/font&gt;, &lt;font color="#a31515"&gt;"BolayToConnectionString"&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;config.Add(&lt;font color="#a31515"&gt;"requiresQuestionAndAnswer"&lt;/font&gt;, &lt;font color="#a31515"&gt;"false"&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;provider.Initialize(config[&lt;font color="#a31515"&gt;"name"&lt;/font&gt;], config);&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;MembershipCreateStatus&lt;/font&gt; membershipStatus = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;MembershipCreateStatus&lt;/font&gt;();&lt;/p&gt; &lt;p&gt;provider.CreateUser(userName, password, email, &lt;font color="#0000ff"&gt;null&lt;/font&gt;,&lt;font color="#0000ff"&gt;null&lt;/font&gt;, &lt;font color="#0000ff"&gt;true&lt;/font&gt;, &lt;font color="#0000ff"&gt;null&lt;/font&gt;, &lt;font color="#0000ff"&gt;out&lt;/font&gt; membershipStatus);&lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;Assert&lt;/font&gt;.AreEqual(&lt;font color="#2b91af"&gt;MembershipCreateStatus&lt;/font&gt;.Success, membershipStatus,&lt;font color="#a31515"&gt;"User not inserted"&lt;/font&gt;); &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;The NameValueCollection variable "config" sets up the configuration settings for the Membership Provider. You can improve this by adding the Membership Provider settings in App.config and then reading the config block at runtime. &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx&amp;amp;;subject=Unit+Testing+Membership+Provider" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx&amp;amp;;title=Unit+Testing+Membership+Provider" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx&amp;amp;title=Unit+Testing+Membership+Provider" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx&amp;amp;;title=Unit+Testing+Membership+Provider" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx&amp;amp;;title=Unit+Testing+Membership+Provider&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/30/Unit-Testing-Membership-Provider.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36145" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Which AJAX Framework do you mostly use?</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx</id><published>2007-10-27T19:26:44Z</published><updated>2007-10-27T19:26:44Z</updated><content type="html">&lt;p&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Which AJAX Framework do you mostly use?&lt;/td&gt; &lt;/p&gt; &lt;p&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="choiceStyle"&gt;ASP.NET AJAX&lt;/p&gt; &lt;p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="choiceStyle"&gt;AJAX PRO Library&lt;/p&gt; &lt;p&gt;&lt;/td&gt;&amp;nbsp;&lt;/tr&gt;&lt;tr&gt;&lt;td class="choiceStyle"&gt;Anthem.NET&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;/td&gt;&amp;nbsp;&lt;/tr&gt;&lt;tr&gt;&lt;td class="choiceStyle"&gt;Plain XmlHttp Object&lt;/p&gt; &lt;p&gt;This is the new poll on GridViewGuy. Simply visit GridViewGuy and cast your vote. The poll control will be on the upper right hand side of the screen. &lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx&amp;amp;;subject=Which+AJAX+Framework+do+you+mostly+use%3f" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx&amp;amp;;title=Which+AJAX+Framework+do+you+mostly+use%3f" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx&amp;amp;title=Which+AJAX+Framework+do+you+mostly+use%3f" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx&amp;amp;;title=Which+AJAX+Framework+do+you+mostly+use%3f" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx&amp;amp;;title=Which+AJAX+Framework+do+you+mostly+use%3f&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Which-AJAX-Framework-do-you-mostly-use_3F00_.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36058" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Input CheckBox Checked Property</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx</id><published>2007-10-27T15:22:31Z</published><updated>2007-10-27T15:22:31Z</updated><content type="html">&lt;p&gt;INPUT checkbox checked property is kind of funny. This is because the name of the property also becomes the value of the property as shown in the example below: &lt;/p&gt; &lt;p&gt;input type="checkbox" checked = "checked" &lt;/p&gt; &lt;p&gt;or simply &lt;/p&gt; &lt;p&gt;input type="checkbox" checked&lt;/p&gt; &lt;p&gt;So, if you want to dynamically generate the checkbox at runtime and not make the checkbox checked then simply remove the checked property as shown below: &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;bool&lt;/font&gt; showChecked = &lt;font color="#0000ff"&gt;true&lt;/font&gt;; &lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;Literal&lt;/font&gt; lit = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;Literal&lt;/font&gt;();&lt;/p&gt; &lt;p&gt;lit.Text = &lt;font color="#a31515"&gt;"&amp;lt;input type=\"checkbox\" "&lt;/font&gt; + (showChecked == &lt;font color="#0000ff"&gt;true&lt;/font&gt; ? &lt;font color="#a31515"&gt;"Checked"&lt;/font&gt; : &lt;font color="#2b91af"&gt;String&lt;/font&gt;.Empty) +&lt;font color="#a31515"&gt;"/&amp;gt;"&lt;/font&gt; ;&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;.pn1.Controls.Add(lit);&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;this&lt;/font&gt;.pn1.DataBind(); &lt;/p&gt; &lt;p&gt;In my opinion the checked property should have boolean value. So, we can say something like the following: &lt;/p&gt; &lt;p&gt;&amp;lt;input type=checkbox checked = true/false /&amp;gt;&lt;/p&gt; &lt;p&gt;:) &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx&amp;amp;;subject=Input+CheckBox+Checked+Property" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx&amp;amp;;title=Input+CheckBox+Checked+Property" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx&amp;amp;title=Input+CheckBox+Checked+Property" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx&amp;amp;;title=Input+CheckBox+Checked+Property" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx&amp;amp;;title=Input+CheckBox+Checked+Property&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/27/Input-CheckBox-Checked-Property.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36055" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Making Your Error Pages Pretty!</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx</id><published>2007-10-26T02:31:00Z</published><updated>2007-10-26T02:31:00Z</updated><content type="html">&lt;p&gt;In my opinion your client/user should never see the yellow screen of death. There are numerous ways to redirect the user to a custom error page. In this post I will discuss how to use Application_Error event in the Global.asax file. Let&amp;#39;s check out the code that will throw the error. &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;private&lt;/font&gt; &lt;font color="#0000ff"&gt;string&lt;/font&gt; GetObjectFromSession()&lt;/p&gt; &lt;p&gt;{&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;if&lt;/font&gt; (Session[&lt;font color="#a31515"&gt;&amp;quot;UserName&amp;quot;&lt;/font&gt;] == &lt;font color="#0000ff"&gt;null&lt;/font&gt;)&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;throw&lt;/font&gt; &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;ArgumentNullException&lt;/font&gt;(&lt;font color="#a31515"&gt;&amp;quot;UserName is null&amp;quot;&lt;/font&gt;,&lt;font color="#a31515"&gt;&amp;quot;UserName is null. Your session has expired. &amp;lt;res&amp;gt; Please log on to the system to start a new session &amp;lt;/res&amp;gt;&amp;quot;&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;return&lt;/font&gt; Session[&lt;font color="#a31515"&gt;&amp;quot;UserName&amp;quot;&lt;/font&gt;] &lt;font color="#0000ff"&gt;as&lt;/font&gt; &lt;font color="#2b91af"&gt;String&lt;/font&gt;; &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;So, the above code will throw the error since I am not storing anything in the Session Object. &lt;/p&gt; &lt;p&gt;You will notice that I am using the &amp;lt;res&amp;gt; (&amp;quot;res&amp;quot;) tags inside for the exception message. The &amp;quot;res&amp;quot; means resolution of the problem. I think it is important to give users some information on how to solve the problem and get back on the right track. &lt;/p&gt; &lt;p&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; Application_Error(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt; e)&lt;/p&gt; &lt;p&gt;{ &lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;HttpContext&lt;/font&gt; context = &lt;font color="#2b91af"&gt;HttpContext&lt;/font&gt;.Current;&lt;/p&gt; &lt;p&gt;&lt;font color="#2b91af"&gt;Exception&lt;/font&gt; ex = context.Server.GetLastError();&lt;/p&gt; &lt;p&gt;Response.Write(&lt;font color="#a31515"&gt;&amp;quot;&amp;lt;link href=\&amp;quot;Stylesheet1.css\&amp;quot; rel=\&amp;quot;stylesheet\&amp;quot; type=\&amp;quot;text/css\&amp;quot; /&amp;gt;&amp;quot;&lt;/font&gt;);&lt;/p&gt; &lt;p&gt;Response.Write(&lt;font color="#2b91af"&gt;TableHelper&lt;/font&gt;.GenerateErrorTable(ex)); &lt;/p&gt; &lt;p&gt;context.Server.ClearError(); &lt;/p&gt; &lt;p&gt;}&lt;/p&gt; &lt;p&gt;The Application_Error event uses the TableHelper and style sheets to make the error look better or prettier. Take a look at the result shown in the screen shot shown below: &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.flickr.com/photos/12983214@N00/1753046264/" title="ErrorDetails2Res"&gt;&lt;img src="http://static.flickr.com/2049/1753046264_5dff9fe8e3.jpg" alt="ErrorDetails2Res" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;UPDATE: &lt;/p&gt;&lt;p&gt;&amp;nbsp;private static string ReplaceTags(string message)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ((message.Replace(&amp;quot;&amp;lt;res&amp;gt;&amp;quot;,&amp;quot;&amp;lt;span class=\&amp;quot;resolution\&amp;quot;&amp;gt;&amp;quot;)).Replace(&amp;quot;&amp;lt;/res&amp;gt;&amp;quot;,&amp;quot;&amp;lt;/span&amp;gt;&amp;quot;));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static string GenerateErrorTable(Exception ex)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Table table = new Table();&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; table.CssClass = &amp;quot;pollTable&amp;quot;;&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; TableHeaderRow headerRow = new TableHeaderRow();&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; headerRow.CssClass = &amp;quot;pollTitle&amp;quot;;&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; TableHeaderCell headerCell = new TableHeaderCell();&lt;br /&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; headerCell.Text = &amp;quot;ERROR DETAILS&amp;quot;;&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; headerRow.Cells.Add(headerCell);&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;br /&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; Literal litText = new Literal();&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; litText.Text = ReplaceTags(ex.Message) + &amp;quot; &amp;quot; + ReplaceTags(ex.InnerException.Message);&lt;br /&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; TableRow row = new TableRow();&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; TableCell cell = new TableCell();&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; cell.Controls.Add(litText);&amp;nbsp;&amp;nbsp;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.Cells.Add(cell);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TableRow resRow = new TableRow();&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; TableCell resCell = new TableCell();&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; resCell.Text = ErrorResource.SessionNullError;&lt;br /&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; resRow.Cells.Add(resCell); &lt;br /&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; table.Rows.Add(headerRow);&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; table.Rows.Add(row);&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; table.Rows.Add(new TableRow());&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;br /&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; StringWriter sw = new StringWriter();&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; HtmlTextWriter htw = new HtmlTextWriter(sw);&lt;br /&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; table.RenderControl(htw);&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 sw.ToString();&amp;nbsp;&amp;nbsp;&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; } &lt;br /&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx&amp;amp;;subject=Making+Your+Error+Pages+Pretty!" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx&amp;amp;;title=Making+Your+Error+Pages+Pretty!" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx&amp;amp;title=Making+Your+Error+Pages+Pretty!" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx&amp;amp;;title=Making+Your+Error+Pages+Pretty!" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx&amp;amp;;title=Making+Your+Error+Pages+Pretty!&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Making-Your-Error-Pages-Pretty_2100_.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=36004" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Upload Multiple Files Using WebClient.UploadFile Method</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx</id><published>2007-10-25T15:34:00Z</published><updated>2007-10-25T15:34:00Z</updated><content type="html">
&lt;p&gt;In this post I will demonstrate how to use WebClient.UploadFile to upload multiple files to the server. The attachment procedure is like gmail which allows you to select one file after the other. &lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;font color="#0000ff"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;a&lt;/font&gt; &lt;font color="#ff0000"&gt;href&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;#&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;onclick&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;attachFile()&amp;quot;&amp;gt;&lt;/font&gt;Attach a file&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;a&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt; &lt;/p&gt;
&lt;font color="#0000ff"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;&lt;/font&gt;&lt;font color="#a31515"&gt;script&lt;/font&gt; &lt;font color="#ff0000"&gt;language&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;javascript&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;type&lt;/font&gt;&lt;font color="#0000ff"&gt;=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;/font&gt;&lt;/p&gt;
&lt;font color="#0000ff"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; selectedFiles = &lt;font color="#a31515"&gt;&amp;#39;&amp;#39;&lt;/font&gt;;&lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;font color="#0000ff"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt; ReceiveServerData(response) &lt;/p&gt;
 
&lt;p&gt;{&lt;/p&gt;
 
&lt;p&gt;alert(response); &lt;/p&gt;
 
&lt;p&gt;}&lt;/p&gt;
&lt;font color="#0000ff"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt; uploadFile() &lt;/p&gt;
 
&lt;p&gt;{&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; fileList = document.getElementById(&lt;font color="#a31515"&gt;&amp;quot;fileDivBox&amp;quot;&lt;/font&gt;).getElementsByTagName(&lt;font color="#a31515"&gt;&amp;quot;INPUT&amp;quot;&lt;/font&gt;); &lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;for&lt;/font&gt;(i=0; i&amp;lt;fileList.length;i++) &lt;/p&gt;
 
&lt;p&gt;{&lt;/p&gt;
 
&lt;p&gt;selectedFiles += fileList[i].value + &lt;font color="#a31515"&gt;&amp;quot;|&amp;quot;&lt;/font&gt;;&lt;/p&gt;
 
&lt;p&gt;}&lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;CallServer(selectedFiles,&lt;font color="#a31515"&gt;&amp;#39;&amp;#39;&lt;/font&gt;); &lt;/p&gt;
 
&lt;p&gt;}&lt;/p&gt;
&lt;font color="#0000ff"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;function&lt;/font&gt; attachFile() &lt;/p&gt;
 
&lt;p&gt;{&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; fu = document.createElement(&lt;font color="#a31515"&gt;&amp;quot;INPUT&amp;quot;&lt;/font&gt;); &lt;/p&gt;
 
&lt;p&gt;fu.type = &lt;font color="#a31515"&gt;&amp;quot;file&amp;quot;&lt;/font&gt;; &lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;var&lt;/font&gt; br = document.createElement(&lt;font color="#a31515"&gt;&amp;quot;&amp;lt;BR&amp;gt;&amp;quot;&lt;/font&gt;); &lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;document.getElementById(&lt;font color="#a31515"&gt;&amp;quot;fileDivBox&amp;quot;&lt;/font&gt;).appendChild(fu); &lt;/p&gt;
 
&lt;p&gt;document.getElementById(&lt;font color="#a31515"&gt;&amp;quot;fileDivBox&amp;quot;&lt;/font&gt;).appendChild(br); &lt;/p&gt;
 
&lt;p&gt;}&lt;/p&gt;
&lt;font color="#0000ff"&gt; &lt;/font&gt;
&lt;p&gt;&lt;font color="#0000ff"&gt;&amp;lt;/&lt;/font&gt;&lt;font color="#a31515"&gt;script&lt;/font&gt;&lt;font color="#0000ff"&gt;&amp;gt;&lt;/font&gt;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;The attachFile function creates a new input element of type &amp;quot;file&amp;quot; and appends it to the DIV element. When the user clicks the upload button the uploadFile function is fired which iterates through the DIV (fileDivBox) element and gets all the selected files and sends them to the server. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;The ASP.NET page uses client callbacks. If you are interested to learn about client callbacks then visit &lt;a href="http://www.gridviewguy.com/ArticleDetails.aspx?articleID=199"&gt;this&lt;/a&gt; link. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;&lt;/font&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;public&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; RaiseCallbackEvent(&lt;font color="#0000ff"&gt;string&lt;/font&gt; eventArgument)&lt;/p&gt;
 
&lt;p&gt;{&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;[] files = (eventArgument.TrimEnd(&lt;font color="#a31515"&gt;&amp;#39;|&amp;#39;&lt;/font&gt;)).Split(&lt;font color="#a31515"&gt;&amp;#39;|&amp;#39;&lt;/font&gt;);&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#2b91af"&gt;WebClient&lt;/font&gt; client = &lt;font color="#0000ff"&gt;new&lt;/font&gt; &lt;font color="#2b91af"&gt;WebClient&lt;/font&gt;();&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt; (&lt;font color="#0000ff"&gt;string&lt;/font&gt; file &lt;font color="#0000ff"&gt;in&lt;/font&gt; files)&lt;/p&gt;
 
&lt;p&gt;{&lt;/p&gt;
 
&lt;p&gt;client.UploadFile(&lt;font color="#a31515"&gt;&amp;quot;http://localhost:1566/FileServer.aspx&amp;quot;&lt;/font&gt;, &lt;font color="#a31515"&gt;&amp;quot;POST&amp;quot;&lt;/font&gt;, file);&lt;/p&gt;
 
&lt;p&gt;} &lt;/p&gt;
 
&lt;p&gt;}&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;The RaiseCallbackEvent is where the upload takes place. I am using WebClient class UploadFile method&amp;nbsp;to upload the file. The file is posted to the FileServer.aspx page where I can retrieve it and save it in the server&amp;#39;s folder. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
 
&lt;p&gt;&lt;b&gt;&lt;u&gt;FileServer.aspx: &lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;protected&lt;/font&gt; &lt;font color="#0000ff"&gt;void&lt;/font&gt; Page_Load(&lt;font color="#0000ff"&gt;object&lt;/font&gt; sender, &lt;font color="#2b91af"&gt;EventArgs&lt;/font&gt; e)&lt;/p&gt;
 
&lt;p&gt;{&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt; path = &lt;font color="#a31515"&gt;@&amp;quot;C:\UploadedFiles\&amp;quot;&lt;/font&gt;; &lt;font color="#008000"&gt;// server folder&lt;/font&gt;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;string&lt;/font&gt;[] keys = Request.Files.AllKeys;&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;foreach&lt;/font&gt;(&lt;font color="#2b91af"&gt;String&lt;/font&gt; key &lt;font color="#0000ff"&gt;in&lt;/font&gt; keys) &lt;/p&gt;
 
&lt;p&gt;{&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#2b91af"&gt;HttpPostedFile&lt;/font&gt; file = Request.Files[key];&lt;/p&gt;
 
&lt;p&gt;file.SaveAs(path + file.FileName); &lt;/p&gt;
 
&lt;p&gt;}&lt;/p&gt;
 
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
 
&lt;p&gt;}&lt;/p&gt;
 
&lt;p&gt;&lt;font color="#0000ff"&gt;&lt;font color="#000000"&gt;I will be writing an article about this technique so stay tunned on GridViewGuy.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx&amp;amp;;subject=Upload+Multiple+Files+Using+WebClient.UploadFile+Method" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx&amp;amp;;title=Upload+Multiple+Files+Using+WebClient.UploadFile+Method" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx&amp;amp;title=Upload+Multiple+Files+Using+WebClient.UploadFile+Method" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx&amp;amp;;title=Upload+Multiple+Files+Using+WebClient.UploadFile+Method" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx&amp;amp;;title=Upload+Multiple+Files+Using+WebClient.UploadFile+Method&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/25/Upload-Multiple-Files-Using-WebClient.UploadFile-Method.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=35973" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Scott Guthrie LINQ to SQL Tutorials in PDF Format</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx</id><published>2007-10-24T23:35:00Z</published><updated>2007-10-24T23:35:00Z</updated><content type="html">
&lt;p&gt;Just found a great link to Scott Guthrie LINQ to SQL articles. All the articles are compiled into a single PDF format. &lt;/p&gt;
&lt;p&gt;Check it out using the link below: &lt;/p&gt;
&lt;p&gt;http://it-box.blogturk.net/wp-content/themes/it-box/files/LINQToSql.pdf&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;





&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx&amp;amp;;subject=Scott+Guthrie+LINQ+to+SQL+Tutorials+in+PDF+Format" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx&amp;amp;;title=Scott+Guthrie+LINQ+to+SQL+Tutorials+in+PDF+Format" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx&amp;amp;title=Scott+Guthrie+LINQ+to+SQL+Tutorials+in+PDF+Format" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx&amp;amp;;title=Scott+Guthrie+LINQ+to+SQL+Tutorials+in+PDF+Format" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx&amp;amp;;title=Scott+Guthrie+LINQ+to+SQL+Tutorials+in+PDF+Format&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/24/Scott-Guthrie-LINQ-to-SQL-Tutorials-in-PDF-Format.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=35952" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Using Fiddler With localhost</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx</id><published>2007-10-22T02:00:35Z</published><updated>2007-10-22T02:00:35Z</updated><content type="html">&lt;p&gt;&lt;a href="http://weblogs.asp.net/mikebosch/archive/2007/10/09/using-fiddler-with-asp-net-s-default-local-server.aspx?CommentPosted=true#commentmessage"&gt;Mike Bosch&lt;/a&gt; has an excellent post about using Fiddler with localhost. Originally, I used to use fiddler with localhost by replacing the localhost with the computer name. Mike describes that you can simply put a "." after the localhost and it will work just as good. &lt;/p&gt; &lt;p&gt;So, instead of &lt;/p&gt; &lt;p&gt;&lt;a href="http://localhost:4034/MyApplication/Default.aspx"&gt;http://localhost:4034/MyApplication/Default.aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;you can write &lt;/p&gt; &lt;p&gt;&lt;a href="http://localhost.:4034/MyApplication/Default.aspx"&gt;http://localhost.:4034/MyApplication/Default.aspx&lt;/a&gt; &lt;/p&gt; &lt;p&gt;and &lt;/p&gt; &lt;p&gt;&lt;a href="http://COMPUTERNAME:4034/MyApplication/Default.aspx"&gt;http://COMPUTERNAME:4034/MyApplication/Default.aspx&lt;/a&gt; &lt;/p&gt; &lt;p&gt;:) &lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx&amp;amp;;subject=Using+Fiddler+With+localhost" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx&amp;amp;;title=Using+Fiddler+With+localhost" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx&amp;amp;title=Using+Fiddler+With+localhost" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx&amp;amp;;title=Using+Fiddler+With+localhost" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx&amp;amp;;title=Using+Fiddler+With+localhost&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/21/Using-Fiddler-With-localhost.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=35891" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry><entry><title>Creating a Poll User Control Article Published on GridViewGuy</title><link rel="alternate" type="text/html" href="http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx" /><id>http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx</id><published>2007-10-21T03:08:19Z</published><updated>2007-10-21T03:08:19Z</updated><content type="html">&lt;p&gt;I have just published an article on GridViewGuy in which I discussed how to create a Poll user control that can be used to collect and display the poll on the website. You can read the article using the link below: &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.gridviewguy.com/ArticleDetails.aspx?articleID=322"&gt;Creating AJAX Enabled Poll User Control Using Client Callbacks&lt;/a&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a href = "mailto:?body=Thought you might like this: http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx&amp;amp;;subject=Creating+a+Poll+User+Control+Article+Published+on+GridViewGuy" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx"&gt;email it!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx&amp;amp;;title=Creating+a+Poll+User+Control+Article+Published+on+GridViewGuy" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx"&gt;bookmark it!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx&amp;amp;title=Creating+a+Poll+User+Control+Article+Published+on+GridViewGuy" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx&amp;amp;;title=Creating+a+Poll+User+Control+Article+Published+on+GridViewGuy" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx&amp;amp;;title=Creating+a+Poll+User+Control+Article+Published+on+GridViewGuy&amp;amp;;top=1" target="_blank" title = "Post http://aspadvice.com/blogs/azamsharp/archive/2007/10/20/Creating-a-Poll-User-Control-Article-Published-on-GridViewGuy.aspx"&gt;live it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://aspadvice.com/aggbug.aspx?PostID=35883" width="1" height="1"&gt;</content><author><name>azamsharp</name><uri>http://aspadvice.com/members/azamsharp.aspx</uri></author></entry></feed>