<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1850047779793623762</id><updated>2011-07-28T14:00:22.780-07:00</updated><title type='text'>DotNetIdeas</title><subtitle type='html'>.NET Framework/Compact Framework and SharePoint Programming Tips and Tricks</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dotnetideasblog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/-/ASP.NET'/><link rel='alternate' type='text/html' href='http://dotnetideasblog.blogspot.com/search/label/ASP.NET'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>DotNetIdeas</name><uri>http://www.blogger.com/profile/03831530161621206454</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1850047779793623762.post-5921342840003542339</id><published>2009-06-11T11:29:00.001-07:00</published><updated>2009-06-23T11:50:19.071-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Web site display issues in IE8</title><content type='html'>&lt;p&gt;After upgrading to IE8, I notice our web site (&lt;a href="http://www.dotnetideas.com"&gt;www.dotnetideas.com&lt;/a&gt;) doesn&amp;#8217;t look pretty anymore. One issue is the dropdown menus are blank. I searched the internet and found several solutions. I just used the easiest one. That is to add the following to your style sheet and page.&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #cc6633"&gt;.IE8Fix&lt;/span&gt;  &lt;br /&gt;{  &lt;br /&gt;    z-index: &lt;span style="color: #006080"&gt;100;&lt;/span&gt;  &lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;DynamicMenuStyle&lt;/span&gt; &lt;span style="color: #ff0000"&gt;CssClass&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;IE8Fix&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;Another issue I run into does not just happen in IE8, but also in FireFox. Our master page contains three columns. The left and right columns are set to float left and right. They are displayed nicely in IE7. But in IE8 and FireFox, the left column was squeezed when there is no content and the background image of the middle column was moved over to the far left. The solution to it is add the following line to the style sheet for the middle column&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre id="codeSnippet" style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; direction: ltr; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; text-align: left; border-bottom-style: none"&gt;&lt;span style="color: #0000ff"&gt;overflow&lt;/span&gt;:&lt;span style="color: #006080"&gt;hidden;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1850047779793623762-5921342840003542339?l=dotnetideasblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetideasblog.blogspot.com/feeds/5921342840003542339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dotnetideasblog.blogspot.com/2009/06/web-site-display-issues-in-ie8.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/5921342840003542339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/5921342840003542339'/><link rel='alternate' type='text/html' href='http://dotnetideasblog.blogspot.com/2009/06/web-site-display-issues-in-ie8.html' title='Web site display issues in IE8'/><author><name>DotNetIdeas</name><uri>http://www.blogger.com/profile/03831530161621206454</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1850047779793623762.post-1602155471012009458</id><published>2009-03-16T13:25:00.001-07:00</published><updated>2009-03-16T13:25:39.255-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Validation of viewstate MAC failed</title><content type='html'>&lt;p&gt;Recently I ran into a issue on my &lt;a href="http://www.dotnetideas.com/"&gt;web site&lt;/a&gt;. If I opened a page and didn't do anything for a while, say 10 minutes, I would get the following error if I click a link on the page. &lt;/p&gt;  &lt;p&gt;*Validation of viewstate MAC failed. If this application is hosted by a Web Farm or cluster, ensure that configuration specifies the same validationKey and validation algorithm. AutoGenerate cannot be used in a cluster.* &lt;/p&gt;  &lt;p&gt;*Description: *An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.&lt;/p&gt;  &lt;p&gt;I sent an email to the support of my web hosting because I am not sure if my site is hosted by a Web Farm. This is their reply: &lt;/p&gt;  &lt;p&gt;&amp;quot;This can happen when your application looses the session. It can loses the session when the application pool is recycled.&amp;quot;&lt;/p&gt;  &lt;p&gt;This didn't help me much. So I googled. Some people suggested to set EnableViewStateMac=&amp;quot;false&amp;quot; in web.config. That didn't work for me. &lt;/p&gt;  &lt;p&gt;I am thinking if my web site is running on a web farm and their machine keys do not match, there is nothing I can do about it. But I may be able to override the machine key in my web.config file. Finally I found this &lt;a href="http://www.orcsweb.com/articles/aspnetmachinekey.aspx"&gt;&amp;quot;Generate MachineKey Online Tool&amp;quot;&lt;/a&gt; by Scott Forsyth. I think that is exactly what I need. It says:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;quot;Run the following tool to create a valid random machine key to place in your web.config or machine.config file.&amp;#160; This is beneficial in a webfarm where all of the server nodes need to have the same machine key, and it is also beneficial on a single box to keep the machine key consistent between IIS recycles and server reboots. &amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I run it and copied the generated Machine Key to my web.config file. The problem is gone. &lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1850047779793623762-1602155471012009458?l=dotnetideasblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetideasblog.blogspot.com/feeds/1602155471012009458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dotnetideasblog.blogspot.com/2009/03/validation-of-viewstate-mac-failed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/1602155471012009458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/1602155471012009458'/><link rel='alternate' type='text/html' href='http://dotnetideasblog.blogspot.com/2009/03/validation-of-viewstate-mac-failed.html' title='Validation of viewstate MAC failed'/><author><name>DotNetIdeas</name><uri>http://www.blogger.com/profile/03831530161621206454</uri><email>noreply@blogger.com</email></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1850047779793623762.post-8296929767220618495</id><published>2008-08-18T10:26:00.000-07:00</published><updated>2009-08-13T14:12:44.298-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>ASP.NET Localization</title><content type='html'>&lt;div style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 4pt; padding-left: 0in; padding-right: 0in; border-top: medium none; border-right: medium none; padding-top: 0in; mso-element: para-border-div; mso-border-bottom-themecolor: accent1"&gt;&lt;/div&gt;  &lt;p class="MsoNormal"&gt;There are a lot of articles talking about ASP.NET localization. This article is not going to give you an in-depth look of ASP.NET localization. Instead, it gives you a quick reference about localization of the commonly used content on an ASP.NET page including ASP.NET server control, HTML content, SiteMap and other resources. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;To download sample application, please go to &lt;a href="http://www.codeproject.com/KB/aspnet/AspNetLocalization.aspx"&gt;CodeProject&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;&lt;a name="_Toc237749571"&gt;How to localize ASP.NET server control?&lt;/a&gt;&lt;/h4&gt;  &lt;p class="MsoNormal"&gt;ASP.NET server control localization is the easiest of all. Once you added it to your page, you can simply switch your page to “Design” mode and then go to menu “Tools”-&amp;gt;”Generate Local Resource”. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP476f6iI/AAAAAAAAAWQ/j4JclEfJpw8/s1600-h/clip_image002%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://lh3.ggpht.com/_ElXg_EOWn5c/SoGP5Cq57UI/AAAAAAAAAWU/HdQCPJQ4rWw/clip_image002_thumb.jpg?imgmax=800" width="244" height="98" v:shapes="_x0000_i1038" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;It will generate resource string for each ASP.NET server control on that page. In this example, a file with name Default.aspx.resx was created. It contains all the resource name/value pair for our Default.aspx page.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP5c_t0rI/AAAAAAAAAWY/6AigwjLpmME/s1600-h/clip_image004%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://lh6.ggpht.com/_ElXg_EOWn5c/SoGP5vJuJOI/AAAAAAAAAWc/xMR8hRphUus/clip_image004_thumb.jpg?imgmax=800" width="219" height="164" v:shapes="_x0000_i1037" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh5.ggpht.com/_ElXg_EOWn5c/SoGP502og6I/AAAAAAAAAWg/aryAi7AyI_g/s1600-h/clip_image005%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image005" border="0" alt="clip_image005" src="http://lh6.ggpht.com/_ElXg_EOWn5c/SoGP6VinERI/AAAAAAAAAWk/0oUR49Duanc/clip_image005_thumb.jpg?imgmax=800" width="244" height="94" v:shapes="_x0000_i1036" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Switch back to source pane, you will see it added some code like the following in your HTML.&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;    &lt;p&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Button&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Button1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Hello&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;meta:resourcekey&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Button1Resource1&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p class="MsoNormal"&gt;You then can copy/paste to create resource file for other culture. For example, you may create Default.aspx.fr.resx for French user.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP6lPoTzI/AAAAAAAAAWo/H93dof8IO54/s1600-h/clip_image007%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image007" border="0" alt="clip_image007" src="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP68GnelI/AAAAAAAAAWs/Sg0qalKG9BA/clip_image007_thumb.jpg?imgmax=800" width="203" height="162" v:shapes="_x0000_i1035" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh6.ggpht.com/_ElXg_EOWn5c/SoGP7WRPMyI/AAAAAAAAAWw/jUH-Bap6iWY/s1600-h/clip_image008%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://lh6.ggpht.com/_ElXg_EOWn5c/SoGP7o9iJZI/AAAAAAAAAW0/Cg3PJvnxSis/clip_image008_thumb.jpg?imgmax=800" width="244" height="96" v:shapes="_x0000_i1034" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The following screen shot is when the language is set to English in Internet Explorer.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh5.ggpht.com/_ElXg_EOWn5c/SoGP74PgOhI/AAAAAAAAAW4/WHo6qBgzF30/s1600-h/clip_image010%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://lh3.ggpht.com/_ElXg_EOWn5c/SoGP8Q5wGbI/AAAAAAAAAW8/BqiLcccv0_M/clip_image010_thumb.jpg?imgmax=800" width="244" height="111" v:shapes="Picture_x0020_1" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Change the language to French by going to Internet Explorer-&amp;gt;Tools-&amp;gt;Internet Options-&amp;gt;Languages&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh6.ggpht.com/_ElXg_EOWn5c/SoGP8uJOtAI/AAAAAAAAAXA/LZxiL1LWhdc/s1600-h/clip_image012%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP88FXALI/AAAAAAAAAXE/n13U49diJE0/clip_image012_thumb.jpg?imgmax=800" width="211" height="244" v:shapes="Picture_x0020_4" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Here is the French version page&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh5.ggpht.com/_ElXg_EOWn5c/SoGP9AHjs5I/AAAAAAAAAXI/7LBo75Kbne8/s1600-h/clip_image014%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP9Xnx3YI/AAAAAAAAAXM/gwRHwhvplAc/clip_image014_thumb.jpg?imgmax=800" width="244" height="112" v:shapes="Picture_x0020_7" /&gt;&lt;/a&gt;&lt;/span&gt; 

  &lt;br style="page-break-before: always; mso-special-character: line-break" clear="all" /&gt;&lt;b&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Cambria&amp;quot;,&amp;quot;serif&amp;quot;; color: #365f91; font-size: 14pt; mso-fareast-font-family: simsun; mso-ascii-theme-font: major-latin; mso-hansi-theme-font: major-latin; mso-bidi-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-theme-font: major-bidi; mso-fareast-theme-font: major-fareast; mso-themecolor: accent1; mso-themeshade: 191"&gt;&lt;/span&gt;

    &lt;p&gt;&lt;/p&gt;
  &lt;/b&gt;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="_Toc237749572"&gt;How to localize HTML content?&lt;/a&gt;&lt;/h4&gt;

&lt;p class="MsoNormal"&gt;To localize the regular HTML content, you can use &amp;lt;asp:Localize&amp;gt; control. Let’s use an example to explain it.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;You have a header and a paragraph in your page.&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Localization Page Header&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;This is a demo page to show you how to do localization in ASP.NET&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;To localize it, you need to add &amp;lt;asp:Localize&amp;gt; to them. &lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Localize&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Header&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Localization Page Header&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Localize&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Localize&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Localize1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;This is a demo page to show you how to do localization in ASP.NET&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Localize&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p class="MsoNormal"&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;Then you may manually create a resource file and add meta:resourcekey=&amp;quot;HeaderResource1” to your page. Or you can take advantage of Visual Studio to automatically generate it. Switch your page to “Design” mode. Go to menu “Tools”-&amp;gt;”Generate Local Resource”. &lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;It will generate the following code and the resource file (i.e. yourfile.aspx.resx) for you.&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;Here is the code it changed:&lt;/p&gt;

&lt;p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;; color: blue; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt; &lt;/span&gt;

  &lt;p&gt;&lt;/p&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Localize&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Header&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;meta:resourcekey&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;HeaderResource1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Localization Page Header&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Localize&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;h1&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Localize&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Localize1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;meta:resourcekey&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Localize1Resource1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;This is a demo page to show you how to do localization in ASP.NET&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:Localize&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;p&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;span style="color: blue"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;The rest steps are as same as how would you localize ASP.NET server control.&lt;/p&gt;
&lt;span style="line-height: 115%; font-family: &amp;quot;Calibri&amp;quot;,&amp;quot;sans-serif&amp;quot;; font-size: 11pt; mso-fareast-font-family: simsun; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: &amp;#39;Times New Roman&amp;#39;; mso-bidi-theme-font: minor-bidi; mso-fareast-theme-font: minor-fareast; mso-ansi-language: en-us; mso-fareast-language: zh-cn; mso-bidi-language: ar-sa"&gt;
  &lt;br style="page-break-before: always; mso-special-character: line-break" clear="all" /&gt;&lt;/span&gt;

&lt;p class="MsoNormal"&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="_Toc237749573"&gt;How to localize site map?&lt;/a&gt;&lt;/h4&gt;

&lt;p class="MsoNormal"&gt;&amp;#160;&lt;a href="http://msdn.microsoft.com/en-us/library/ms178427.aspx"&gt;This article&lt;/a&gt; will give you more detail on SiteMap localization.&lt;/p&gt;

&lt;p style="text-indent: -0.25in; mso-list: l0 level1 lfo1" class="MsoListParagraph"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Enable site map localization by adding enableLocalization=&amp;quot;true&amp;quot; to site map file, for example: Web.sitemap file&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;siteMap&lt;/span&gt; &lt;span style="color: #ff0000"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;http://schemas.microsoft.com/AspNet/SiteMap-File-1.0&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;enableLocalization&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;true&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p style="text-indent: -0.25in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Change the value of the property that you want to localize to a resource string in&lt;span style="line-height: 115%; font-family: &amp;quot;Verdana&amp;quot;,&amp;quot;sans-serif&amp;quot;; color: black; font-size: 8pt"&gt; &lt;/span&gt;siteMapNode using this format “&lt;span style="color: black"&gt;$resources:ClassName,KeyName,DefaultValue”&lt;/span&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;siteMapNode&lt;/span&gt; &lt;span style="color: #ff0000"&gt;url&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Default.aspx&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;title&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;$resources:SiteMapLocalizations,HomePageTitle&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;description&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;$resources:SiteMapLocalizations,HomePageDescription&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&amp;#160;&lt;/p&gt;

&lt;p style="text-indent: -0.25in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;3.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Add global resource folder and files. Right click the web site in solution explorer. Click on “Add ASP.NET folder”. Click on “Add App_GlobalResources” from the sub-menu. It will add an “App_GlobalResources” folder to your root directory. &lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP9opUnVI/AAAAAAAAAXQ/hZ84jEmDMgk/s1600-h/clip_image016%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image016" border="0" alt="clip_image016" src="http://lh6.ggpht.com/_ElXg_EOWn5c/SoGP98ghjPI/AAAAAAAAAXU/PgmtpnktTng/clip_image016_thumb.jpg?imgmax=800" width="244" height="194" v:shapes="Picture_x0020_10" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;Then add resource file, for example, SiteMapLocalizations.resx. In the file, you will have name/value pair for each of the resource string. For example,&lt;span style="mso-spacerun: yes"&gt;&amp;#160; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;Name&lt;span style="mso-tab-count: 3"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Value&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;HomePageTitle&lt;span style="mso-tab-count: 2"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;Home&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p style="text-indent: -0.25in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpLast"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;4.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Create resource file for each culture you may have. For example, you may have a file called SiteMapLocalizations.fr.resx for French.&lt;/p&gt;

&lt;p style="margin-left: 0.25in" class="MsoNormal"&gt;Below are the screen shot of menus in English and French&lt;/p&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP-GvevNI/AAAAAAAAAXY/3hT0wduIBFY/s1600-h/clip_image018%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image018" border="0" alt="clip_image018" src="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP-UaR4WI/AAAAAAAAAXc/40Dnduvs-pU/clip_image018_thumb.jpg?imgmax=800" width="244" height="72" v:shapes="Picture_x0020_16" /&gt;&lt;/a&gt;&lt;/span&gt; 

  &lt;br style="page-break-before: always; mso-special-character: line-break" clear="all" /&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="_Toc237749574"&gt;How to localize string programmatically?&lt;/a&gt;&lt;/h4&gt;

&lt;p class="MsoNormal"&gt;Sometimes you may need to display a string, for example, an error message at the run time. You will need to localize it programmatically. Here is how to do it:&lt;/p&gt;

&lt;p style="text-indent: -0.25in; mso-list: l1 level1 lfo2" class="MsoListParagraphCxSpFirst"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;1.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Add resource file under App_GlobalResources folder. In this example, we added a file called “CommonResource.resx” and a French version “CommonResource.fr.resx”&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGP-ky420I/AAAAAAAAAXg/hmqQ1mRUGmY/s1600-h/clip_image020%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image020" border="0" alt="clip_image020" src="http://lh3.ggpht.com/_ElXg_EOWn5c/SoGP_MAZijI/AAAAAAAAAXk/5H5E2RJ4VuE/clip_image020_thumb.jpg?imgmax=800" width="203" height="227" v:shapes="_x0000_i1028" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh6.ggpht.com/_ElXg_EOWn5c/SoGP_SKnqGI/AAAAAAAAAXo/9xk_SIFt44k/s1600-h/clip_image021%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image021" border="0" alt="clip_image021" src="http://lh5.ggpht.com/_ElXg_EOWn5c/SoGP_mU5GtI/AAAAAAAAAXs/sLwAa85vItI/clip_image021_thumb.jpg?imgmax=800" width="244" height="129" v:shapes="_x0000_i1027" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p style="text-indent: -0.25in; mso-list: l1 level1 lfo2" class="MsoListParagraphCxSpMiddle"&gt;&lt;span style="mso-fareast-font-family: calibri; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-theme-font: minor-latin"&gt;&lt;span style="mso-list: ignore"&gt;2.&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Add the following code to use that resource file&lt;/p&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;ResourceManager rm = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; ResourceManager(&lt;span style="color: #006080"&gt;&amp;quot;Resources.CommonResource&amp;quot;&lt;/span&gt;, Assembly.Load(&lt;span style="color: #006080"&gt;&amp;quot;App_Glob alResources&amp;quot;&lt;/span&gt;));&lt;br /&gt;&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.Label1.Text = rm.GetString(&lt;span style="color: #006080"&gt;&amp;quot;HelloString&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;

&lt;div&gt;&amp;#160;&lt;/div&gt;

&lt;div&gt;After posting this on &lt;a href="http://www.codeproject.com/KB/aspnet/AspNetLocalization.aspx"&gt;CodeProject&lt;/a&gt;, I received a comment from Alexander Nesterenko indicating there are better ways to get the resource string. Here is his comment:&lt;/div&gt;

&lt;blockquote&gt;
  &lt;p&gt;You should get resources from ~\App_GlobalResources\MyMessages.resx by:
    &lt;br /&gt;1. Generated code wrapper - string message = Resources.MyMessages.Hello;

    &lt;br /&gt;2. Resource expression - &amp;lt;asp:Label Text=&amp;quot;&amp;lt;%$ Resources: MyMessages, Hello %&amp;gt;&amp;quot; /&amp;gt;

    &lt;br /&gt;3. Method GetGlobalResourceObject - string message = GetGlobalResourceObject(&amp;quot;MyMessages&amp;quot;, &amp;quot;Hello&amp;quot;);

    &lt;br /&gt;You should get resources from ~\App_LocalResources\default.aspx.resx by:

    &lt;br /&gt;1. Resource expression - &amp;lt;asp:Label Text=&amp;quot;&amp;lt;%$ Resources: Hello %&amp;gt;&amp;quot; /&amp;gt;

    &lt;br /&gt;2. meta:resourceKey - &amp;lt;asp:Label meta:resourceKey=&amp;quot;labelResourceKey&amp;quot; /&amp;gt;

    &lt;br /&gt;3. Method GetLocalResourceObject - string message = GetLocalResourceObject(&amp;quot;Hello&amp;quot;); &lt;/p&gt;
&lt;/blockquote&gt;

&lt;div&gt;Thanks, Alexander.&lt;/div&gt;

&lt;div&gt;
  &lt;br /&gt;Here are the screen shots:&lt;/div&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="mso-no-proof: yes"&gt;&lt;a href="http://lh5.ggpht.com/_ElXg_EOWn5c/SoGP_y9IOPI/AAAAAAAAAXw/hVkHCRt84Bs/s1600-h/clip_image023%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image023" border="0" alt="clip_image023" src="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGQALl64RI/AAAAAAAAAX0/f0jhTtx114M/clip_image023_thumb.jpg?imgmax=800" width="244" height="94" v:shapes="Picture_x0020_22" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraph"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;/span&gt;

  &lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;h4&gt;&lt;a name="_Toc237749575"&gt;How to dynamically change culture?&lt;/a&gt;&lt;/h4&gt;

&lt;p class="MsoNormal"&gt;In the sample code, we added two LinkButtons. When you click on “English”, the page will switch to English culture; click on “&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; color: black; font-size: 10pt; mso-fareast-font-family: &amp;#39;Times New Roman&amp;#39;; mso-fareast-language: en-us"&gt;Français&lt;/span&gt;”, it will switch to French. To detect which link button is clicked, we used the Request.Form[“__EventTarget”]. It works, but probably not the best way. &lt;/p&gt;

&lt;p class="MsoNormal"&gt;We override the “InitializeCulture” method of the page, so it will display the correct culture based on the selection we made.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;HTML code:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:LinkButton&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;LanguageEnglish&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;English&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:LinkButton&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:LinkButton&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;LanguageFrench&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Text&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Français&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:LinkButton&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p class="MsoNormal"&gt;ASP.NET code&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;override&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; InitializeCulture()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; language = Request.Form[&lt;span style="color: #006080"&gt;&amp;quot;__EventTarget&amp;quot;&lt;/span&gt;];&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;string&lt;/span&gt; languageId = &lt;span style="color: #006080"&gt;&amp;quot;&amp;quot;&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (!&lt;span style="color: #0000ff"&gt;string&lt;/span&gt;.IsNullOrEmpty(language))&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (language.EndsWith(&lt;span style="color: #006080"&gt;&amp;quot;French&amp;quot;&lt;/span&gt;)) languageId = &lt;span style="color: #006080"&gt;&amp;quot;fr-FR&amp;quot;&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; languageId = &lt;span style="color: #006080"&gt;&amp;quot;en-US&amp;quot;&lt;/span&gt;;&lt;br /&gt;        Thread.CurrentThread.CurrentCulture = &lt;br /&gt;        CultureInfo.CreateSpecificCulture(languageId);&lt;br /&gt;&lt;br /&gt;        Thread.CurrentThread.CurrentUICulture = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; CultureInfo(languageId);&lt;br /&gt;    }&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;base&lt;/span&gt;.InitializeCulture(); &lt;br /&gt;}&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;p class="MsoNormal"&gt;&lt;span style="line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes"&gt;&lt;a href="http://lh4.ggpht.com/_ElXg_EOWn5c/SoGQAjV8cuI/AAAAAAAAAX4/LzMcKvlQsKA/s1600-h/clip_image025%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image025" border="0" alt="clip_image025" src="http://lh6.ggpht.com/_ElXg_EOWn5c/SoGQA6EliwI/AAAAAAAAAX8/woUhW5WDbB4/clip_image025_thumb.jpg?imgmax=800" width="244" height="116" v:shapes="Picture_x0020_13" /&gt;&lt;/a&gt; &lt;/span&gt;

  &lt;p&gt;&lt;/p&gt;
&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p class="MsoNormal"&gt;This works for everything except the menu. If you have a menu using SiteMap in your page. You may need to call menu.DataBind() in Page_Load event or set EnableViewState to false. Otherwise your menu will still show the previous culture string while other content change to the new culture.&lt;/p&gt;

&lt;p class="MsoNormal"&gt;When we dynamically change the culture, most likely we need to store it somewhere so it won’t get lost when we jump from page to page. In the sample application, we used Session to do that. &lt;/p&gt;

&lt;p class="MsoNormal"&gt;Happy Programming!&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1850047779793623762-8296929767220618495?l=dotnetideasblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetideasblog.blogspot.com/feeds/8296929767220618495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dotnetideasblog.blogspot.com/2008/08/aspnet-localization.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/8296929767220618495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/8296929767220618495'/><link rel='alternate' type='text/html' href='http://dotnetideasblog.blogspot.com/2008/08/aspnet-localization.html' title='ASP.NET Localization'/><author><name>DotNetIdeas</name><uri>http://www.blogger.com/profile/03831530161621206454</uri><email>noreply@blogger.com</email></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_ElXg_EOWn5c/SoGP5Cq57UI/AAAAAAAAAWU/HdQCPJQ4rWw/s72-c/clip_image002_thumb.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1850047779793623762.post-1457485510630152764</id><published>2008-08-18T10:24:00.000-07:00</published><updated>2009-08-14T12:34:04.159-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Drag and Drop in ASP.NET</title><content type='html'>&lt;div style="border-bottom: #4f81bd 1pt solid; border-left: medium none; padding-bottom: 4pt; padding-left: 0in; padding-right: 0in; border-top: medium none; border-right: medium none; padding-top: 0in; mso-element: para-border-div; mso-border-bottom-themecolor: accent1"&gt;&lt;/div&gt;  &lt;p class="MsoNormal"&gt;First, I want to say I am not a JavaScript expert. The last time I used JavaScript was 7 years ago. Recently I started working on a web site which needs to allow user drag and drop items from a list. I did a lot of research and found some very useful articles. They helped me to implement this feature on my site. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;These articles are &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://aspalliance.com/1300_Custom_Client_Side_Drag_and_Drop_Behavior_in_ASPNET_AJAX"&gt;http://aspalliance.com/1300_Custom_Client_Side_Drag_and_Drop_Behavior_in_ASPNET_AJAX&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.codeproject.com/KB/ajax/JigsawPuzzleGame.aspx"&gt;http://www.codeproject.com/KB/ajax/JigsawPuzzleGame.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/en-us/magazine/cc135985.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/cc135985.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Although they are very helpful, my scenario is not exactly the same. I want to be able to drag an item, drop to an area and then drag/drop it again later. I tried to mimic the Jigsaw Puzzle sample. However, since my item is not an image, only a string, I got lost during the re-writing. Finally I figured out my own solution.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Below is the screen shot of my sample. You can download the sample code from &lt;a href="http://www.dotnetideas.com/Download/DragAndDrop.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="mso-fareast-language: zh-cn; mso-no-proof: yes"&gt;&lt;a href="http://lh5.ggpht.com/_ElXg_EOWn5c/SR2XcU_iTyI/AAAAAAAAAIc/PQZeBnuhrMs/clip_image002%5B2%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="clip_image002" src="http://lh6.ggpht.com/_ElXg_EOWn5c/SR2XcZY7hII/AAAAAAAAAIg/8ehyY_xU-gs/clip_image002_thumb.jpg" width="244" height="204" v:shapes="Picture_x0020_4" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;User can drag/drop an item from the list on top to the “Drop it here” area. User can also move the items between grids. Finally, user can remove an item by drag/drop it to the Garbage Can area.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Let’s see how we implement this by using ASP.NET AJAX and Javascript:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Before you start, you will need to download the ASP.NET 3.5 Extension Preview:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=A9C6BC06-B894-4B11-8300-35BD2F8FC908&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=A9C6BC06-B894-4B11-8300-35BD2F8FC908&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;and ASP.NET Future &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://www.asp.net/downloads/futures/default.aspx?wwwaspnetrdirset=1"&gt;http://www.asp.net/downloads/futures/default.aspx?wwwaspnetrdirset=1&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p&gt;&lt;span&gt;Add reference to “Microsoft.Web.Preview for .NET 3.5” in your project.         &lt;p&gt;&lt;/p&gt;       &lt;/span&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;span&gt;Add ScriptManager to the page since we are using AJAX         &lt;p&gt;&lt;/p&gt;       &lt;/span&gt;&lt;/p&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;&lt;span&gt;Add ScriptReference&lt;/span&gt;&lt;/p&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;div&gt;   &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:ScriptManager&lt;/span&gt; &lt;span style="color: #ff0000"&gt;runat&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;ID&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;ScriptManager1&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;Scripts&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:ScriptReference&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;PreviewScript.js&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.Web.Preview&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:ScriptReference&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Name&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;PreviewDragDrop.js&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Assembly&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;Microsoft.Web.Preview&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;Scripts&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:ScriptManager&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;Create a page with the following html elements&lt;/li&gt;
&lt;/ul&gt;

&lt;br /&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;dragItem1&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Item 1&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;br&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;dragItem2&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Item 2&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;br&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;dragItem3&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Item 3&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;br&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;dragItem4&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Item 4&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;br&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;table&lt;/span&gt; &lt;span style="color: #ff0000"&gt;border&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;1&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;dragDropZone&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;tr&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt; &lt;span style="color: #ff0000"&gt;width&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;target1&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Drop it here&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt; &lt;span style="color: #ff0000"&gt;width&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;target2&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Drop it here&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt; &lt;span style="color: #ff0000"&gt;width&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;target3&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Drop it here&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt; &lt;span style="color: #ff0000"&gt;width&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;target4&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Drop it here&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;tr&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;tr&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt; &lt;span style="color: #ff0000"&gt;colspan&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;4&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;height&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;100&amp;quot;&lt;/span&gt; &lt;span style="color: #ff0000"&gt;id&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;garbageCan&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Garbage Can&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;td&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;tr&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;table&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;div&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;ul&gt;
  &lt;li&gt;Create DragDrop.js. I posted the whole file here. Please see comments for explaination.
    &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;Type.registerNamespace(&lt;span style="color: #006080"&gt;'DotNetIdeas.Ajax.UI'&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;//ItemDragSourceBehavior&lt;/span&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.ItemDragSourceBehavior = &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(element, item, parent, target)&lt;br /&gt;{&lt;br /&gt;    DotNetIdeas.Ajax.UI.ItemDragSourceBehavior.initializeBase(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;, [element]);&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._mouseDownHandler = Function.createDelegate(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.mouseDownHandler);&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._item = item;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._parent = parent;  &lt;span style="color: #008000"&gt;// Parent control which hold the drag items and drop targes&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._target = target;  &lt;span style="color: #008000"&gt;// current target the drag item is on&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.ItemDragSourceBehavior.prototype =&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #008000"&gt;// IDragSource methods&lt;/span&gt;&lt;br /&gt;    get_dragDataType: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #006080"&gt;'DragDropItem'&lt;/span&gt;;&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    getDragData: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(context) {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._item;&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    get_dragMode: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; Sys.Preview.UI.DragMode.Move;&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;//The following two functions are for FireFox, so it won't select the text when drag starts&lt;/span&gt;&lt;br /&gt;    returnFalse: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;false&lt;/span&gt;; },&lt;br /&gt;    returnTrue: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() { &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;true&lt;/span&gt;; },&lt;br /&gt;    &lt;br /&gt;    onDragStart: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;br /&gt;        document.onmousedown = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.returnFalse;&lt;br /&gt;        &lt;span style="color: #008000"&gt;// Set the leaving target, so we can remove this item from it later&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._parent) &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._parent.setLeavingTarget(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._target);&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    onDrag: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() { },&lt;br /&gt;&lt;br /&gt;    onDragEnd: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(canceled) {&lt;br /&gt;        &lt;span style="color: #008000"&gt;// If drag from the outside of the dragdrop control, then there will be a shadow when moving the item, &lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;// so we need to remove it when drag is end&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual &amp;amp;&amp;amp; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().parentNode)&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().parentNode.removeChild(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual);&lt;br /&gt;        document.onmousedown = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.returnTrue;&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    &lt;span style="color: #008000"&gt;// Other methods&lt;/span&gt;&lt;br /&gt;    initialize: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;br /&gt;        DotNetIdeas.Ajax.UI.ItemDragSourceBehavior.callBaseMethod(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&lt;br /&gt;            &lt;span style="color: #006080"&gt;'initialize'&lt;/span&gt;);&lt;br /&gt;        $addHandler(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element(), &lt;span style="color: #006080"&gt;'mousedown'&lt;/span&gt;,&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._mouseDownHandler)&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    mouseDownHandler: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(ev) {&lt;br /&gt;        window._event = ev; &lt;span style="color: #008000"&gt;// Needed internally by _DragDropManager&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().cloneNode(&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual.style.opacity = &lt;span style="color: #006080"&gt;'0.4'&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual.style.filter =&lt;br /&gt;          &lt;span style="color: #006080"&gt;'progid:DXImageTransform.Microsoft.BasicImage(opacity=0.4)'&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual.style.zIndex = 99999;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().parentNode.appendChild(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; location =&lt;br /&gt;            Sys.UI.DomElement.getLocation(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element());&lt;br /&gt;        Sys.UI.DomElement.setLocation(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual, location.x,&lt;br /&gt;            location.y);&lt;br /&gt;&lt;br /&gt;        Sys.Preview.UI.DragDropManager.startDragDrop(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._visual, &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    dispose: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;() {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._mouseDownHandler)&lt;br /&gt;            $removeHandler(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element(), &lt;span style="color: #006080"&gt;'mousedown'&lt;/span&gt;,&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._mouseDownHandler);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._mouseDownHandler = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;        DotNetIdeas.Ajax.UI.ItemDragSourceBehavior.callBaseMethod(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&lt;br /&gt;            &lt;span style="color: #006080"&gt;'dispose'&lt;/span&gt;);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.ItemDragSourceBehavior.registerClass&lt;br /&gt;    (&lt;span style="color: #006080"&gt;'DotNetIdeas.Ajax.UI.ItemDragSourceBehavior'&lt;/span&gt;, Sys.UI.Behavior,&lt;br /&gt;    Sys.Preview.UI.IDragSource);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;//ItemDropTargetBehavior&lt;/span&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.ItemDropTargetBehavior = &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(element, parent)&lt;br /&gt;{&lt;br /&gt;    DotNetIdeas.Ajax.UI.ItemDropTargetBehavior.initializeBase(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;, [element]);&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Array();&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._parent = parent;&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.targetType = &lt;span style="color: #006080"&gt;&amp;quot;Target&amp;quot;&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.ItemDropTargetBehavior.prototype =&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: #008000"&gt;// IDropTarget methods&lt;/span&gt;&lt;br /&gt;    get_dropTargetElement: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;()&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element();&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    canDrop: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(dragMode, dataType, data)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; (dataType == &lt;span style="color: #006080"&gt;'DragDropItem'&lt;/span&gt; &amp;amp;&amp;amp; data);&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    drop: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(dragMode, dataType, data)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (dataType == &lt;span style="color: #006080"&gt;'DragDropItem'&lt;/span&gt; &amp;amp;&amp;amp; data)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.targetType != &lt;span style="color: #006080"&gt;'GarbageCan'&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: #008000"&gt;// If the item already exists in this target area, do not add it again.&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;for&lt;/span&gt;(&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; id &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items[id] == data) &lt;span style="color: #0000ff"&gt;return&lt;/span&gt;;&lt;br /&gt;                }&lt;br /&gt;                &lt;br /&gt;                &lt;span style="color: #008000"&gt;// Add new item to item list in this target area&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; newId = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items.length;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items[newId] = data;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; itemBuilder = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Sys.StringBuilder();&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; targetId = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().id.toString();&lt;br /&gt;                &lt;br /&gt;                &lt;span style="color: #008000"&gt;// Re-generate the HTML string for the items              &lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; id &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items) {&lt;br /&gt;                    itemBuilder.append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;div id='droppedItem_&amp;quot;&lt;/span&gt; + targetId + &lt;span style="color: #006080"&gt;&amp;quot;_&amp;quot;&lt;/span&gt; + id.toString() + &lt;span style="color: #006080"&gt;&amp;quot;'&amp;gt;&amp;quot;&lt;/span&gt; );&lt;br /&gt;                    itemBuilder.append(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items[id]);&lt;br /&gt;                    itemBuilder.append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().innerHTML = itemBuilder.toString();&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: #008000"&gt;// Create the draggable items&lt;/span&gt;&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; id &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items) {&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; itemId = &lt;span style="color: #006080"&gt;&amp;quot;droppedItem&amp;quot;&lt;/span&gt; + &lt;span style="color: #006080"&gt;&amp;quot;_&amp;quot;&lt;/span&gt; + targetId + &lt;span style="color: #006080"&gt;&amp;quot;_&amp;quot;&lt;/span&gt; + id.toString();&lt;br /&gt;                    &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; droppedItem = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDragSourceBehavior($get(itemId), $get(itemId).innerHTML, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._parent, &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;                    droppedItem.initialize();&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;            &lt;span style="color: #008000"&gt;// Remove this item from its previous target&lt;/span&gt;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; leavingTarget = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._parent.getLeavingTarget();&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (leavingTarget) &lt;br /&gt;            {&lt;br /&gt;                leavingTarget.removeItem(data);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._parent.setLeavingTarget(&lt;span style="color: #0000ff"&gt;null&lt;/span&gt;);&lt;br /&gt;        }&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    onDragEnterTarget: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(dragMode, dataType, data)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #008000"&gt;// Highlight the drop zone by changing its background&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;// color to light gray&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (dataType == &lt;span style="color: #006080"&gt;'DragDropItem'&lt;/span&gt; &amp;amp;&amp;amp; data)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._color = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().style.backgroundColor;&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().style.backgroundColor = &lt;span style="color: #006080"&gt;'#E0E0E0'&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;    },&lt;br /&gt;    &lt;br /&gt;    onDragLeaveTarget: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(dragMode, dataType, data)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #008000"&gt;// Unhighlight the drop zone by restoring its original&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #008000"&gt;// background color&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (dataType == &lt;span style="color: #006080"&gt;'DragDropItem'&lt;/span&gt; &amp;amp;&amp;amp; data)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().style.backgroundColor = &lt;span style="color: #006080"&gt;&amp;quot;White&amp;quot;&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;    },&lt;br /&gt;&lt;br /&gt;    onDragInTarget: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(dragMode, dataType, data) {},&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #008000"&gt;// Other methods&lt;/span&gt;&lt;br /&gt;    initialize: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;()&lt;br /&gt;    {&lt;br /&gt;        DotNetIdeas.Ajax.UI.ItemDropTargetBehavior.callBaseMethod(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&lt;br /&gt;            &lt;span style="color: #006080"&gt;'initialize'&lt;/span&gt;);&lt;br /&gt;        Sys.Preview.UI.DragDropManager.registerDropTarget(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;    },&lt;br /&gt;    &lt;br /&gt;    dispose: &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;()&lt;br /&gt;    {&lt;br /&gt;        Sys.Preview.UI.DragDropManager.unregisterDropTarget(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;        DotNetIdeas.Ajax.UI.ItemDropTargetBehavior.callBaseMethod(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;,&lt;br /&gt;            &lt;span style="color: #006080"&gt;'dispose'&lt;/span&gt;);&lt;br /&gt;    },&lt;br /&gt;    &lt;br /&gt;    &lt;span style="color: #008000"&gt;// Remove items from target area&lt;/span&gt;&lt;br /&gt;    removeItem : &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(data)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #008000"&gt;// Remove item from the item list&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; j = 0;    &lt;br /&gt;        &lt;span style="color: #0000ff"&gt;while&lt;/span&gt; (j &amp;lt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items.length) {    &lt;br /&gt;            &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items[j] == data) {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items.splice(j, 1);    &lt;br /&gt;            } &lt;br /&gt;            &lt;span style="color: #0000ff"&gt;else&lt;/span&gt; { &lt;br /&gt;                j++; &lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color: #008000"&gt;// Re-generate HTML for the items&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; itemBuilder = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; Sys.StringBuilder();&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; targetId = &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().id.toString();&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; id &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items) {&lt;br /&gt;            itemBuilder.append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;div id='droppedItem_&amp;quot;&lt;/span&gt; + targetId + &lt;span style="color: #006080"&gt;&amp;quot;_&amp;quot;&lt;/span&gt; + id.toString() + &lt;span style="color: #006080"&gt;&amp;quot;'&amp;gt;&amp;quot;&lt;/span&gt; );&lt;br /&gt;            itemBuilder.append(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items[id]);&lt;br /&gt;            itemBuilder.append(&lt;span style="color: #006080"&gt;&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;/span&gt;);&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;.get_element().innerHTML = itemBuilder.toString();&lt;br /&gt;        &lt;br /&gt;        &lt;span style="color: #008000"&gt;// Re-create the draggable items&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;for&lt;/span&gt; (&lt;span style="color: #0000ff"&gt;var&lt;/span&gt; id &lt;span style="color: #0000ff"&gt;in&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._items) {&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; itemId = &lt;span style="color: #006080"&gt;&amp;quot;droppedItem&amp;quot;&lt;/span&gt; + &lt;span style="color: #006080"&gt;&amp;quot;_&amp;quot;&lt;/span&gt; + targetId + &lt;span style="color: #006080"&gt;&amp;quot;_&amp;quot;&lt;/span&gt; + id.toString();&lt;br /&gt;                &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; droppedItem = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDragSourceBehavior($get(itemId), $get(itemId).innerHTML);&lt;br /&gt;                droppedItem.initialize();&lt;br /&gt;            }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.ItemDropTargetBehavior.registerClass&lt;br /&gt;    (&lt;span style="color: #006080"&gt;'DotNetIdeas.Ajax.UI.ItemDropTargetBehavior'&lt;/span&gt;, Sys.UI.Behavior,&lt;br /&gt;    Sys.Preview.UI.IDropTarget);&lt;br /&gt;    &lt;br /&gt;  &lt;br /&gt;&lt;span style="color: #008000"&gt;//DragDrop Zone. It is used as an container of the drop target areas. It is the parent of all the targets.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;//When one item is moved from one target to another. It will call setLeavingTarget() to store the previous target,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;//so when the item is drop, it knows to remove it from the previous target.&lt;/span&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.DragDropZone = &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(element)&lt;br /&gt;{&lt;br /&gt;    DotNetIdeas.Ajax.UI.DragDropZone.initializeBase(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;, [element]);&lt;br /&gt;    &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._leavingTarget = &lt;span style="color: #0000ff"&gt;null&lt;/span&gt;;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.DragDropZone.prototype =&lt;br /&gt;{&lt;br /&gt;    initialize : &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;()&lt;br /&gt;    {&lt;br /&gt;        DotNetIdeas.Ajax.UI.DragDropZone.callBaseMethod(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;initialize&amp;quot;&lt;/span&gt;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._renderControl();&lt;br /&gt;    },&lt;br /&gt;    &lt;br /&gt;    dispose : &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;()&lt;br /&gt;    {&lt;br /&gt;        DotNetIdeas.Ajax.UI.DragDropZone.callBaseMethod(&lt;span style="color: #0000ff"&gt;this&lt;/span&gt;, &lt;span style="color: #006080"&gt;&amp;quot;dispose&amp;quot;&lt;/span&gt;);&lt;br /&gt;    },&lt;br /&gt;    &lt;br /&gt;    _renderControl : &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;()&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #008000"&gt;// Create drag/drop targets&lt;/span&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; target1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDropTargetBehavior($get(&lt;span style="color: #006080"&gt;'target1'&lt;/span&gt;), &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; target2 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDropTargetBehavior($get(&lt;span style="color: #006080"&gt;'target2'&lt;/span&gt;), &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; target3 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDropTargetBehavior($get(&lt;span style="color: #006080"&gt;'target3'&lt;/span&gt;), &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; target4 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDropTargetBehavior($get(&lt;span style="color: #006080"&gt;'target4'&lt;/span&gt;), &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; garbageCan = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDropTargetBehavior($get(&lt;span style="color: #006080"&gt;'garbageCan'&lt;/span&gt;), &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;);&lt;br /&gt;        target1.initialize();&lt;br /&gt;        target2.initialize();&lt;br /&gt;        target3.initialize();&lt;br /&gt;        target4.initialize();&lt;br /&gt;        garbageCan.initialize();&lt;br /&gt;        garbageCan.targetType = &lt;span style="color: #006080"&gt;&amp;quot;GarbageCan&amp;quot;&lt;/span&gt;;&lt;br /&gt;    },&lt;br /&gt;    &lt;br /&gt;    setLeavingTarget : &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;(leavingTarget)&lt;br /&gt;    {&lt;br /&gt;       &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._leavingTarget = leavingTarget; &lt;br /&gt;    },&lt;br /&gt;    &lt;br /&gt;    getLeavingTarget : &lt;span style="color: #0000ff"&gt;function&lt;/span&gt;()&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;return&lt;/span&gt; &lt;span style="color: #0000ff"&gt;this&lt;/span&gt;._leavingTarget;&lt;br /&gt;    }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;DotNetIdeas.Ajax.UI.DragDropZone.registerClass(&lt;span style="color: #006080"&gt;&amp;quot;DotNetIdeas.Ajax.UI.DragDropZone&amp;quot;&lt;/span&gt;, Sys.UI.Control);&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;///////////////////////////////////////////////////////////////////////&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #008000"&gt;// Script registration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sys.Application.notifyScriptLoaded();&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;br /&gt;&lt;/div&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Add ScriptReference for DragDrop.js&lt;/p&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;br /&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px" id="codeSnippet"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;asp:ScriptReference&lt;/span&gt; &lt;span style="color: #ff0000"&gt;Path&lt;/span&gt;&lt;span style="color: #0000ff"&gt;=&amp;quot;~/DragDrop.js&amp;quot;&lt;/span&gt; &lt;span style="color: #0000ff"&gt;/&amp;gt;&lt;/span&gt;&lt;/pre&gt;

  &lt;br /&gt;&lt;/div&gt;

&lt;br /&gt;

&lt;p style="text-indent: -0.25in; mso-list: l0 level1 lfo1" class="MsoListParagraphCxSpMiddle"&gt;&lt;span&gt;&lt;span style="mso-list: ignore"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Add following code to header section
    &lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div&gt;
  &lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, &amp;#39;Courier New&amp;#39;, courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&amp;lt;script type=&lt;span style="color: #006080"&gt;&amp;quot;text/javascript&amp;quot;&lt;/span&gt;&amp;gt;&lt;br /&gt;      &lt;span style="color: #0000ff"&gt;function&lt;/span&gt; pageLoad() {&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; source1 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDragSourceBehavior($get(&lt;span style="color: #006080"&gt;'dragItem1'&lt;/span&gt;), $get(&lt;span style="color: #006080"&gt;'dragItem1'&lt;/span&gt;).innerHTML);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; source2 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDragSourceBehavior($get(&lt;span style="color: #006080"&gt;'dragItem2'&lt;/span&gt;), $get(&lt;span style="color: #006080"&gt;'dragItem2'&lt;/span&gt;).innerHTML);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; source3 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDragSourceBehavior($get(&lt;span style="color: #006080"&gt;'dragItem3'&lt;/span&gt;), $get(&lt;span style="color: #006080"&gt;'dragItem3'&lt;/span&gt;).innerHTML);&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; source4 = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.ItemDragSourceBehavior($get(&lt;span style="color: #006080"&gt;'dragItem4'&lt;/span&gt;), $get(&lt;span style="color: #006080"&gt;'dragItem4'&lt;/span&gt;).innerHTML);&lt;br /&gt;        source1.initialize();&lt;br /&gt;        source2.initialize();&lt;br /&gt;        source3.initialize();&lt;br /&gt;        source4.initialize();&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: #0000ff"&gt;var&lt;/span&gt; dragDropZone = &lt;span style="color: #0000ff"&gt;new&lt;/span&gt; DotNetIdeas.Ajax.UI.DragDropZone($get(&lt;span style="color: #006080"&gt;'dragDropZone'&lt;/span&gt;));&lt;br /&gt;        dragDropZone.initialize();&lt;br /&gt;      }&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;br /&gt;

&lt;p class="MsoListParagraphCxSpLast"&gt;
  &lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;/p&gt;

&lt;br /&gt;

&lt;p class="MsoNormal"&gt;
  &lt;p&gt;&amp;#160;&lt;/p&gt;
&lt;/p&gt;

&lt;br /&gt;

&lt;p class="MsoNormal"&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1850047779793623762-1457485510630152764?l=dotnetideasblog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://dotnetideasblog.blogspot.com/feeds/1457485510630152764/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://dotnetideasblog.blogspot.com/2008/08/drag-and-drop-in-aspnet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/1457485510630152764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1850047779793623762/posts/default/1457485510630152764'/><link rel='alternate' type='text/html' href='http://dotnetideasblog.blogspot.com/2008/08/drag-and-drop-in-aspnet.html' title='Drag and Drop in ASP.NET'/><author><name>DotNetIdeas</name><uri>http://www.blogger.com/profile/03831530161621206454</uri><email>noreply@blogger.com</email></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_ElXg_EOWn5c/SR2XcZY7hII/AAAAAAAAAIg/8ehyY_xU-gs/s72-c/clip_image002_thumb.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>