<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>LanceZhang's Blog</title>
	<atom:link href="http://lancezhang.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lancezhang.wordpress.com</link>
	<description>Dear friends, Welcome to my blog.</description>
	<lastBuildDate>Wed, 27 Apr 2011 08:35:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lancezhang.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>LanceZhang's Blog</title>
		<link>http://lancezhang.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lancezhang.wordpress.com/osd.xml" title="LanceZhang&#039;s Blog" />
	<atom:link rel='hub' href='http://lancezhang.wordpress.com/?pushpress=hub'/>
		<item>
		<title>2 ways to retireve the uniqueidentification field after insert</title>
		<link>http://lancezhang.wordpress.com/2011/04/01/2-ways-to-retireve-the-uniqueidentification-field-after-insert/</link>
		<comments>http://lancezhang.wordpress.com/2011/04/01/2-ways-to-retireve-the-uniqueidentification-field-after-insert/#comments</comments>
		<pubDate>Fri, 01 Apr 2011 06:54:41 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[MSSQL]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=120</guid>
		<description><![CDATA[Using uniqueidentifier field as primary key and set the default value as (newsequentialid()) or (newid()) is a good choose for some scenerio. If you try to use SCOPE_IDENTITY() or @@IDENTITY to retireve the uniqueidentification ID after add new row, you will found that is not worked. There are two solution to achieve the facing goal: DECLARE @outputTable TABLE(ID uniqueidentifier) INSERT INTO TABLE1(col1, col2) OUTPUT INSERTED.ID INTO @outputTable VALUES(&#8216;value1&#8242;, &#8217;value2&#8242;) SELECT ID FROM @outputTable [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=120&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Using uniqueidentifier field as primary key and set the default value as (newsequentialid()) or (newid()) is a good choose for some scenerio.</p>
<p>If you try to use SCOPE_IDENTITY() or @@IDENTITY to retireve the uniqueidentification ID after add new row, you will found that is not worked.</p>
<p>There are two solution to achieve the facing goal:</p>
<p><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />DECLARE @outputTable TABLE(ID uniqueidentifier)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />INSERT INTO TABLE1(col1, col2)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />OUTPUT INSERTED.ID INTO @outputTable<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />VALUES(&#8216;value1&#8242;, &#8217;value2&#8242;)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />SELECT ID FROM @outputTable<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />&#8211; mark your ID field as ROWGUID<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />INSERT INTO TABLE1(col1, col2)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />VALUES(&#8216;value1&#8242;, &#8217;value2&#8242;)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" />SELECT ROWGUIDCOL FROM TABLE1</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/120/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/120/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/120/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=120&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2011/04/01/2-ways-to-retireve-the-uniqueidentification-field-after-insert/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />
	</item>
		<item>
		<title>A common Log class for .NET</title>
		<link>http://lancezhang.wordpress.com/2009/04/08/log-for-net/</link>
		<comments>http://lancezhang.wordpress.com/2009/04/08/log-for-net/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 02:37:51 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[Code and Solution]]></category>
		<category><![CDATA[Develop Resource]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=116</guid>
		<description><![CDATA[LanceZhang.Common.Log Methods:  1. Output(string) This method is used for record the normal Logs, it will create a file name like &#8220;log_20090408.txt&#8221; to the root directory of your application, and append the log message:   2.OutputError(string) Just like the Output method, this method not only output the log message, but also output the following messages: File name Method name Line number Column [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=116&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h4><span style="font-size:14pt;">LanceZhang.Common.Log</span></h4>
<p><img src="http://images.cnblogs.com/cnblogs_com/blodfox777/asdfasdfewtkf.png" border="0" alt="" width="443" height="279" /></p>
<h4></h4>
<h4>Methods: </h4>
<h4><strong>1. Output(string)</strong></h4>
<p>This method is used for record the normal Logs, it will create a file name like &#8220;log_20090408.txt&#8221; to the root directory of your application, and append the log message:</p>
<p><img src="http://images.cnblogs.com/cnblogs_com/blodfox777/logsdfasdfrrsd.png" border="0" alt="" width="349" height="227" /></p>
<p> </p>
<p><strong>2.OutputError(string)</strong></p>
<p>Just like the Output method, this method not only output the log message, but also output the following messages:</p>
<ul>
<li>File name</li>
<li>Method name</li>
<li>Line number</li>
<li>Column number</li>
</ul>
<p>which is useful for an exception analysis</p>
<p>Example:</p>
<div class="cnblogs_code"><span style="color:#000000;">    </span><span style="color:#0000ff;">try</span><span style="color:#000000;"><br />
    {<br />
        </span><span style="color:#0000ff;">int</span><span style="color:#000000;"> i </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800080;">8</span><span style="color:#000000;">;<br />
        </span><span style="color:#0000ff;">int</span><span style="color:#000000;"> j </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#800080;">0</span><span style="color:#000000;">;<br />
        </span><span style="color:#0000ff;">int</span><span style="color:#000000;"> c </span><span style="color:#000000;">=</span><span style="color:#000000;"> i </span><span style="color:#000000;">/</span><span style="color:#000000;"> j;<br />
    }<br />
    </span><span style="color:#0000ff;">catch</span><span style="color:#000000;"> (Exception ex)<br />
    {<br />
        Log.OutputError(ex.Message);<br />
    }</span></div>
<p>Then, the output is like:</p>
<p><img src="http://images.cnblogs.com/cnblogs_com/blodfox777/logasdfihnk.png" border="0" alt="" width="666" height="235" /> </p>
<h4><span style="font-size:14pt;">Code： </span></h4>
<div class="cnblogs_code"><img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" align="top" /><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;">/**/</span><span><span style="color:#008000;">/*</span><span style="color:#008000;">***************************** Module Header ******************************<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />* Module Name:    Log.cs<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />* Project:    LanceZhang.Common<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />* Copyright (c) Lance Zhang (blodfox777@hotmail.com)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />* <br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />* History:<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />* * 3/7/2009 2:50 Lance Zhang Created<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />**************************************************************************</span><span style="color:#008000;">*/</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color:#0000ff;">using</span><span style="color:#000000;"> System;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color:#0000ff;">using</span><span style="color:#000000;"> System.Collections.Generic;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color:#0000ff;">using</span><span style="color:#000000;"> System.Linq;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color:#0000ff;">using</span><span style="color:#000000;"> System.Text;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color:#0000ff;">using</span><span style="color:#000000;"> System.IO;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color:#0000ff;">using</span><span style="color:#000000;"> System.Diagnostics;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span><span style="color:#0000ff;">namespace</span><span style="color:#000000;"> LanceZhang.Common<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" alt="" align="top" /></span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />    </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">static</span><span style="color:#000000;"> </span><span style="color:#0000ff;">class</span><span style="color:#000000;"> Log<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />    </span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />        </span><span style="color:#0000ff;">private</span><span style="color:#000000;"> </span><span style="color:#0000ff;">static</span><span style="color:#000000;"> </span><span style="color:#0000ff;">object</span><span style="color:#000000;"> lockobj</span><span style="color:#000000;">=</span><span style="color:#0000ff;">new</span><span style="color:#000000;"> </span><span style="color:#0000ff;">object</span><span style="color:#000000;">();<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />        </span><span style="color:#0000ff;">private</span><span style="color:#000000;"> </span><span style="color:#0000ff;">static</span><span style="color:#000000;"> </span><span style="color:#0000ff;">void</span><span style="color:#000000;"> WriteToFile(</span><span style="color:#0000ff;">string</span><span style="color:#000000;"> filename, </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> content)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />        </span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />            </span><span style="color:#0000ff;">using</span><span style="color:#000000;"> (StreamWriter sw </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> StreamWriter(filename, </span><span style="color:#0000ff;">true</span><span style="color:#000000;">))<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />            </span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sw.WriteLine(content);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sw.Close();<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />            }</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />        }</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />        </span><span style="color:#0000ff;">private</span><span style="color:#000000;"> </span><span style="color:#0000ff;">static</span><span style="color:#000000;"> </span><span style="color:#0000ff;">string</span><span style="color:#000000;"> GetDateTime()<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />        </span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />            </span><span style="color:#0000ff;">return</span><span style="color:#000000;"> </span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">[</span><span style="color:#800000;">"</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> DateTime.Now.ToString(</span><span style="color:#800000;">"</span><span style="color:#800000;">HH:mm:ss</span><span style="color:#800000;">"</span><span style="color:#000000;">) </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">"</span><span style="color:#800000;">] </span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">;<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />        }</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />        </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">static</span><span style="color:#000000;"> </span><span style="color:#0000ff;">void</span><span style="color:#000000;"> Output(</span><span style="color:#0000ff;">string</span><span style="color:#000000;"> msg)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />        </span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />            </span><span style="color:#0000ff;">lock</span><span style="color:#000000;"> (lockobj)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />            </span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                Log.WriteToFile(Directory.GetCurrentDirectory()</span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">@&#8221;</span><span style="color:#800000;">\log_</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> DateTime.Now.ToString(</span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">yyyyMMdd</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">) </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">.txt</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">, GetDateTime() </span><span style="color:#000000;">+</span><span style="color:#000000;"> msg);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />            }</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />        }</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" /><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />        </span><span style="color:#0000ff;">public</span><span style="color:#000000;"> </span><span style="color:#0000ff;">static</span><span style="color:#000000;"> </span><span style="color:#0000ff;">void</span><span style="color:#000000;"> OutputError(</span><span style="color:#0000ff;">string</span><span style="color:#000000;"> msg)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />        </span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />            </span><span style="color:#0000ff;">lock</span><span style="color:#000000;"> (lockobj)<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" alt="" align="top" /><img style="display:none;" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" alt="" align="top" />            </span><span style="border-bottom:#808080 1px solid;border-left:#808080 1px solid;background-color:#ffffff;display:none;border-top:#808080 1px solid;border-right:#808080 1px solid;"><img src="http://www.cnblogs.com/Images/dot.gif" alt="" /></span><span><span style="color:#000000;">{<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                StackFrame sf </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> StackTrace(</span><span style="color:#0000ff;">true</span><span style="color:#000000;">).GetFrame(</span><span style="color:#800080;">1</span><span style="color:#000000;">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                StringBuilder sb </span><span style="color:#000000;">=</span><span style="color:#000000;"> </span><span style="color:#0000ff;">new</span><span style="color:#000000;"> StringBuilder(GetDateTime());<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.Append(</span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">ERROR:</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.AppendLine(msg);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.AppendLine(</span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">Error from:</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.AppendLine(sf.GetFileName());<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.Append(</span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">Line:</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.AppendLine(sf.GetFileLineNumber().ToString());<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.Append(</span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">Column:</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.AppendLine(sf.GetFileColumnNumber().ToString());<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.Append(</span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">Method:</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                sb.Append(sf.GetMethod().Name);<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" alt="" align="top" />                Log.WriteToFile(Directory.GetCurrentDirectory() </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">@&#8221;</span><span style="color:#800000;">\log_</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;"> </span><span style="color:#000000;">+</span><span style="color:#000000;"> DateTime.Now.ToString(</span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">yyyyMMdd</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">) </span><span style="color:#000000;">+</span><span style="color:#000000;"> </span><span style="color:#800000;">&#8220;</span><span style="color:#800000;">.txt</span><span style="color:#800000;">&#8220;</span><span style="color:#000000;">,  sb.ToString());<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />            }</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />        }</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" alt="" align="top" />    }</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" alt="" align="top" />}</span></span><span style="color:#000000;"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" alt="" align="top" /></span></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/116/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/116/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/116/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=116&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2009/04/08/log-for-net/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>

		<media:content url="http://images.cnblogs.com/cnblogs_com/blodfox777/asdfasdfewtkf.png" medium="image" />

		<media:content url="http://images.cnblogs.com/cnblogs_com/blodfox777/logsdfasdfrrsd.png" medium="image" />

		<media:content url="http://images.cnblogs.com/cnblogs_com/blodfox777/logasdfihnk.png" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/dot.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" medium="image" />

		<media:content url="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" medium="image" />
	</item>
		<item>
		<title>Preview and check Image info before upload</title>
		<link>http://lancezhang.wordpress.com/2009/02/16/preview-and-check-image-info-before-upload/</link>
		<comments>http://lancezhang.wordpress.com/2009/02/16/preview-and-check-image-info-before-upload/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 01:54:48 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[Code and Solution]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=112</guid>
		<description><![CDATA[That will only work in IE: &#60;!DOCTYPE html PUBLIC &#8221;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8221;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&#62; &#60;html xmlns=&#8221;http://www.w3.org/1999/xhtml&#8221;&#62; &#60;head&#62;     &#60;title&#62;validate before upload by Lance Zhang&#60;/title&#62; &#60;/head&#62; &#60;body style=&#8221;font-family:Calibri&#8221;&#62;     &#60;form name=&#8221;Myform&#8221;&#62;     &#60;p&#62;         &#60;font color=&#8221;red&#8221; size=&#8221;6&#8243;&#62;File type :gif,jpg,jpeg,png,bmp&#60;/font&#62;&#60;/p&#62;     &#60;p&#62;         File Size limit:         &#60;input type=&#8221;text&#8221; size=&#8221;4&#8243; value=&#8221;100&#8243; name=&#8221;fileSizeLimit&#8221; id=&#8221;fileSizeLimit&#8221; /&#62;         K&#60;/p&#62;     &#60;p&#62;         Image Height Limit: &#60;input type=&#8221;text&#8221; size=&#8221;4&#8243; value=&#8221;100&#8243; name=&#8221;heightLimit&#8221; id=&#8221;heightLimit&#8221; /&#62;     &#60;/p&#62;     &#60;p&#62;         Image Width Limit: &#60;input type=&#8221;text&#8221; size=&#8221;4&#8243; value=&#8221;100&#8243; name=&#8221;widthLimit&#8221; id=&#8221;widthLimit&#8221; /&#62;     &#60;/p&#62;     &#60;p&#62;         &#60;input type=&#8221;file&#8221; name=&#8221;photo&#8221; onchange=&#8221;changeSrc(this)&#8221; /&#62;         Image Preview&#60;img src=&#8221;about:blank&#8221; id=&#8221;fileChecker&#8221; name=&#8221;fileChecker&#8221; alt=&#8221;test&#8221; /&#62;     &#60;/p&#62;     &#60;p&#62;         &#60;input type=&#8221;submit&#8221; value=&#8221;submit&#8221;&#62;     &#60;/p&#62;     &#60;/form&#62;     &#60;script type=&#8221;text/javascript&#8221;&#62;       function   CheckFileSize()          {          var limit = document.getElementById(&#8220;fileSizeLimit&#8220;).value * 1024;         var width = document.getElementById(&#8220;widthLimit&#8220;).value ;         var height = document.getElementById(&#8220;heightLimit&#8220;).value;               if (oFileChecker.fileSize &#62; limit)         {             alert(&#8220;FileSize :&#8220;+oFileChecker.fileSize+&#8220;byte&#8211;too large!&#8220;);         }         else         {             alert(&#8220;FileSize :&#8220;+oFileChecker.fileSize+&#8220;byte&#8211;ok&#8220;);         }               if(  oFileChecker.height&#62; height)         {             alert(&#8220;ImageHeight :&#8220;+oFileChecker.height+&#8220;&#8211;too height!&#8220;);         }         else         { [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=112&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>That will only work in IE:</p>
<p><span style="color:#0000ff;">&lt;!</span><span style="color:#ff00ff;">DOCTYPE html PUBLIC &#8221;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8221;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
</span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">html </span><span style="color:#ff0000;">xmlns</span><span style="color:#0000ff;">=&#8221;http://www.w3.org/1999/xhtml&#8221;</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
</span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">head</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">title</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">validate before upload by Lance Zhang</span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">title</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
</span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">head</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
</span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">body </span><span style="color:#ff0000;">style</span><span style="color:#0000ff;">=&#8221;font-family:Calibri&#8221;</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">form </span><span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&#8221;Myform&#8221;</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
        </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">font </span><span style="color:#ff0000;">color</span><span style="color:#0000ff;">=&#8221;red&#8221;</span><span style="color:#ff0000;"> size</span><span style="color:#0000ff;">=&#8221;6&#8243;</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;">File type :gif,jpg,jpeg,png,bmp</span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">font</span><span style="color:#0000ff;">&gt;&lt;/</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
        File Size limit:<br />
        </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">input </span><span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#8221;text&#8221;</span><span style="color:#ff0000;"> size</span><span style="color:#0000ff;">=&#8221;4&#8243;</span><span style="color:#ff0000;"> value</span><span style="color:#0000ff;">=&#8221;100&#8243;</span><span style="color:#ff0000;"> name</span><span style="color:#0000ff;">=&#8221;fileSizeLimit&#8221;</span><span style="color:#ff0000;"> id</span><span style="color:#0000ff;">=&#8221;fileSizeLimit&#8221;</span><span style="color:#ff0000;"> </span><span style="color:#0000ff;">/&gt;</span><span style="color:#000000;"><br />
        K</span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
        Image Height Limit: </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">input </span><span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#8221;text&#8221;</span><span style="color:#ff0000;"> size</span><span style="color:#0000ff;">=&#8221;4&#8243;</span><span style="color:#ff0000;"> value</span><span style="color:#0000ff;">=&#8221;100&#8243;</span><span style="color:#ff0000;"> name</span><span style="color:#0000ff;">=&#8221;heightLimit&#8221;</span><span style="color:#ff0000;"> id</span><span style="color:#0000ff;">=&#8221;heightLimit&#8221;</span><span style="color:#ff0000;"> </span><span style="color:#0000ff;">/&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
        Image Width Limit: </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">input </span><span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#8221;text&#8221;</span><span style="color:#ff0000;"> size</span><span style="color:#0000ff;">=&#8221;4&#8243;</span><span style="color:#ff0000;"> value</span><span style="color:#0000ff;">=&#8221;100&#8243;</span><span style="color:#ff0000;"> name</span><span style="color:#0000ff;">=&#8221;widthLimit&#8221;</span><span style="color:#ff0000;"> id</span><span style="color:#0000ff;">=&#8221;widthLimit&#8221;</span><span style="color:#ff0000;"> </span><span style="color:#0000ff;">/&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
        </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">input </span><span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#8221;file&#8221;</span><span style="color:#ff0000;"> name</span><span style="color:#0000ff;">=&#8221;photo&#8221;</span><span style="color:#ff0000;"> onchange</span><span style="color:#0000ff;">=&#8221;changeSrc(this)&#8221;</span><span style="color:#ff0000;"> </span><span style="color:#0000ff;">/&gt;</span><span style="color:#000000;"><br />
        Image Preview</span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">img </span><span style="color:#ff0000;">src</span><span style="color:#0000ff;">=&#8221;about:blank&#8221;</span><span style="color:#ff0000;"> id</span><span style="color:#0000ff;">=&#8221;fileChecker&#8221;</span><span style="color:#ff0000;"> name</span><span style="color:#0000ff;">=&#8221;fileChecker&#8221;</span><span style="color:#ff0000;"> alt</span><span style="color:#0000ff;">=&#8221;test&#8221;</span><span style="color:#ff0000;"> </span><span style="color:#0000ff;">/&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
        </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">input </span><span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#8221;submit&#8221;</span><span style="color:#ff0000;"> value</span><span style="color:#0000ff;">=&#8221;submit&#8221;</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">p</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
    </span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">form</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"></p>
<p>    </span><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">script </span><span style="color:#ff0000;">type</span><span style="color:#0000ff;">=&#8221;text/javascript&#8221;</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;background-color:#f5f5f5;"><br />
      </span><span style="color:#0000ff;background-color:#f5f5f5;">function</span><span style="color:#000000;background-color:#f5f5f5;">   CheckFileSize()   <br />
      { <br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> limit </span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;"> document.getElementById(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">fileSizeLimit</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">).value </span><span style="color:#000000;background-color:#f5f5f5;">*</span><span style="color:#000000;background-color:#f5f5f5;"> </span><span style="color:#000000;background-color:#f5f5f5;">1024</span><span style="color:#000000;background-color:#f5f5f5;">;<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> width </span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;"> document.getElementById(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">widthLimit</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">).value ;<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> height </span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;"> document.getElementById(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">heightLimit</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">).value;<br />
     <br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">if</span><span style="color:#000000;background-color:#f5f5f5;"> (oFileChecker.fileSize </span><span style="color:#000000;background-color:#f5f5f5;">&gt;</span><span style="color:#000000;background-color:#f5f5f5;"> limit)<br />
        {<br />
            alert(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">FileSize :</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">oFileChecker.fileSize</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">byte&#8211;too large!</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);<br />
        }<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">else</span><span style="color:#000000;background-color:#f5f5f5;"><br />
        {<br />
            alert(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">FileSize :</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">oFileChecker.fileSize</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">byte&#8211;ok</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);<br />
        }<br />
     <br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">if</span><span style="color:#000000;background-color:#f5f5f5;">(  oFileChecker.height</span><span style="color:#000000;background-color:#f5f5f5;">&gt;</span><span style="color:#000000;background-color:#f5f5f5;"> height)<br />
        {<br />
            alert(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">ImageHeight :</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">oFileChecker.height</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">&#8211;too height!</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);<br />
        }<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">else</span><span style="color:#000000;background-color:#f5f5f5;"><br />
        {<br />
            alert(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">ImageHeight :</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">oFileChecker.height</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">&#8211;ok</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);<br />
        }<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">if</span><span style="color:#000000;background-color:#f5f5f5;">(oFileChecker.width</span><span style="color:#000000;background-color:#f5f5f5;">&gt;</span><span style="color:#000000;background-color:#f5f5f5;"> width)<br />
        {<br />
            alert(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">ImageWidth :</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">oFileChecker.width</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">&#8211;too width!</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);<br />
        }<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">else</span><span style="color:#000000;background-color:#f5f5f5;"><br />
        {<br />
            alert(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">ImageWidth :</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">oFileChecker.width</span><span style="color:#000000;background-color:#f5f5f5;">+</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">&#8211;ok</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);<br />
        }<br />
            </span><span style="color:#0000ff;background-color:#f5f5f5;">return</span><span style="color:#000000;background-color:#f5f5f5;"> </span><span style="color:#0000ff;background-color:#f5f5f5;">false</span><span style="color:#000000;background-color:#f5f5f5;">;   <br />
      } <br />
      <br />
      </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> right_type</span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#0000ff;background-color:#f5f5f5;">new</span><span style="color:#000000;background-color:#f5f5f5;"> Array(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">.gif</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">,</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">.jpg</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">,</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">.jpeg</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">,</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">.png</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">,</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">.bmp</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);</p>
<p>      </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> oFileChecker </span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;"> document.getElementById(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">fileChecker</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);</p>
<p>     </span><span style="color:#0000ff;background-color:#f5f5f5;">function</span><span style="color:#000000;background-color:#f5f5f5;"> changeSrc(filePicker)<br />
     { <br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">if</span><span style="color:#000000;background-color:#f5f5f5;">(</span><span style="color:#000000;background-color:#f5f5f5;">!</span><span style="color:#000000;background-color:#f5f5f5;">checkImgType(filePicker.value))<br />
        {<br />
            alert(</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">the file type is not correct</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">);<br />
            </span><span style="color:#0000ff;background-color:#f5f5f5;">return</span><span style="color:#000000;background-color:#f5f5f5;">;<br />
        }<br />
        oFileChecker.src </span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;"> filePicker.value;<br />
     }</p>
<p>    oFileChecker.onreadystatechange </span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;"> </span><span style="color:#0000ff;background-color:#f5f5f5;">function</span><span style="color:#000000;background-color:#f5f5f5;"> ()<br />
    { <br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">if</span><span style="color:#000000;background-color:#f5f5f5;"> (oFileChecker.readyState </span><span style="color:#000000;background-color:#f5f5f5;">==</span><span style="color:#000000;background-color:#f5f5f5;"> </span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">complete</span><span style="color:#000000;background-color:#f5f5f5;">&#8220;</span><span style="color:#000000;background-color:#f5f5f5;">)<br />
        {<br />
            CheckFileSize();<br />
        }<br />
    }</p>
<p>    </span><span style="color:#0000ff;background-color:#f5f5f5;">function</span><span style="color:#000000;background-color:#f5f5f5;"> checkImgType(fileURL)<br />
    {<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> right_typeLen</span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;">right_type.length;<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> imgUrl</span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;">fileURL.toLowerCase();<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> postfixLen</span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;">imgUrl.length;<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> len4</span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;">imgUrl.substring(postfixLen</span><span style="color:#000000;background-color:#f5f5f5;">-</span><span style="color:#000000;background-color:#f5f5f5;">4</span><span style="color:#000000;background-color:#f5f5f5;">,postfixLen);<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">var</span><span style="color:#000000;background-color:#f5f5f5;"> len5</span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;">imgUrl.substring(postfixLen</span><span style="color:#000000;background-color:#f5f5f5;">-</span><span style="color:#000000;background-color:#f5f5f5;">5</span><span style="color:#000000;background-color:#f5f5f5;">,postfixLen);<br />
        </span><span style="color:#0000ff;background-color:#f5f5f5;">for</span><span style="color:#000000;background-color:#f5f5f5;"> (i</span><span style="color:#000000;background-color:#f5f5f5;">=</span><span style="color:#000000;background-color:#f5f5f5;">0</span><span style="color:#000000;background-color:#f5f5f5;">;i</span><span style="color:#000000;background-color:#f5f5f5;">&lt;</span><span style="color:#000000;background-color:#f5f5f5;">right_typeLen;i</span><span style="color:#000000;background-color:#f5f5f5;">++</span><span style="color:#000000;background-color:#f5f5f5;">)<br />
        {<br />
            </span><span style="color:#0000ff;background-color:#f5f5f5;">if</span><span style="color:#000000;background-color:#f5f5f5;">((len4</span><span style="color:#000000;background-color:#f5f5f5;">==</span><span style="color:#000000;background-color:#f5f5f5;">right_type[i])</span><span style="color:#000000;background-color:#f5f5f5;">||</span><span style="color:#000000;background-color:#f5f5f5;">(len5</span><span style="color:#000000;background-color:#f5f5f5;">==</span><span style="color:#000000;background-color:#f5f5f5;">right_type[i]))<br />
            {<br />
                </span><span style="color:#0000ff;background-color:#f5f5f5;">return</span><span style="color:#000000;background-color:#f5f5f5;"> </span><span style="color:#0000ff;background-color:#f5f5f5;">true</span><span style="color:#000000;background-color:#f5f5f5;">;<br />
            }<br />
        }<br />
    }</p>
<p></span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">script</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"></p>
<p></span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">body</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
</span><span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">html</span><span style="color:#0000ff;">&gt;</span><span style="color:#000000;"><br />
</span></p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/112/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/112/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/112/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=112&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2009/02/16/preview-and-check-image-info-before-upload/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>
	</item>
		<item>
		<title>TinyMCE Editor and Ajax Control Toolkit Tab Control</title>
		<link>http://lancezhang.wordpress.com/2009/01/20/tinymce-editor-and-ajax-control-toolkit-tab-control/</link>
		<comments>http://lancezhang.wordpress.com/2009/01/20/tinymce-editor-and-ajax-control-toolkit-tab-control/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 06:30:15 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[ASP.NET AJAX Advance Tips & Tricks]]></category>
		<category><![CDATA[Code and Solution]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[TinyMCE]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=108</guid>
		<description><![CDATA[As we know, the ASP.NET forum&#8217;s add post page contains a TabContainer control in one TabPanel there is a TinyMCE Editor for edit the post, another TabPanel is use for preview the post. In this case, I have created a demo like that: &#60;%@ Page Language=&#8221;C#&#8221; ValidateRequest=&#8221;false&#8221; %&#62; &#60;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=108&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>As we know, the ASP.NET forum&#8217;s add post page contains a TabContainer control in one TabPanel there is a TinyMCE Editor for edit the post, another TabPanel is use for preview the post.</p>
<p>In this case, I have created a demo like that:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Page Language=&#8221;C#&#8221; ValidateRequest=&#8221;false&#8221; %&gt;</div>
<p><span style="color:#008080;">&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;html</span> <span style="color:#ff0000;">xmlns=</span><span style="color:#0000ff;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;head</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;Head1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;title&gt;&lt;/title&gt;</span><br />
    <span style="color:#008800;font-style:italic;">&lt;!&#8211; TinyMCE &#8211;&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">src=</span><span style="color:#0000ff;">&#8220;tiny_mce/tiny_mce.js&#8221;</span> <span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/script&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        tinyMCE.init({<br />
            <span style="color:#008800;font-style:italic;">// General options</span><br />
            mode: <span style="color:#0000ff;">&#8220;textareas&#8221;</span>,<br />
            theme: <span style="color:#0000ff;">&#8220;advanced&#8221;</span>,<br />
            plugins: <span style="color:#0000ff;">&#8220;safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,</span></p>
<p><span style="color:#0000ff;">insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template&#8221;</span>,</p>
<p>            <span style="color:#008800;font-style:italic;">// Theme options</span><br />
            theme_advanced_buttons1: <span style="color:#0000ff;">&#8220;save,newdocument,|,bold,italic,underline,strikethrough,|</span></p>
<p><span style="color:#0000ff;">,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect&#8221;</span>,<br />
            theme_advanced_buttons2: <span style="color:#0000ff;">&#8220;cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|</span></p>
<p><span style="color:#0000ff;">,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor&#8221;</span>,<br />
            theme_advanced_buttons3: <span style="color:#0000ff;">&#8220;tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|</span></p>
<p><span style="color:#0000ff;">,print,|,ltr,rtl,|,fullscreen&#8221;</span>,<br />
            theme_advanced_buttons4: <span style="color:#0000ff;">&#8220;insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,</span></p>
<p><span style="color:#0000ff;">|,visualchars,nonbreaking,template,pagebreak&#8221;</span>,<br />
            theme_advanced_toolbar_location: <span style="color:#0000ff;">&#8220;top&#8221;</span>,<br />
            theme_advanced_toolbar_align: <span style="color:#0000ff;">&#8220;left&#8221;</span>,<br />
            theme_advanced_statusbar_location: <span style="color:#0000ff;">&#8220;bottom&#8221;</span>,<br />
            theme_advanced_resizing: <span style="font-weight:bold;color:#000080;">true</span>,</p>
<p>            <span style="color:#008800;font-style:italic;">// Example content CSS (should be your site CSS)</span><br />
            content_css: <span style="color:#0000ff;">&#8220;css/content.css&#8221;</span>,</p>
<p>            <span style="color:#008800;font-style:italic;">// Drop lists for link/image/media/template dialogs</span><br />
            template_external_list_url: <span style="color:#0000ff;">&#8220;lists/template_list.js&#8221;</span>,<br />
            external_link_list_url: <span style="color:#0000ff;">&#8220;lists/link_list.js&#8221;</span>,<br />
            external_image_list_url: <span style="color:#0000ff;">&#8220;lists/image_list.js&#8221;</span>,<br />
            media_external_list_url: <span style="color:#0000ff;">&#8220;lists/media_list.js&#8221;</span>,</p>
<p>            <span style="color:#008800;font-style:italic;">// Replace values for the template plugin</span><br />
            template_replace_values: {<br />
                username: <span style="color:#0000ff;">&#8220;Some User&#8221;</span>,<br />
                staffid: <span style="color:#0000ff;">&#8220;991234&#8243;</span><br />
            }<br />
        });<br />
    <span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p>    <span style="color:#008800;font-style:italic;">&lt;!&#8211; /TinyMCE &#8211;&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/head&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;body&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;form</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;form1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:ScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;/asp:ScriptManager&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;ajaxToolkit:TabContainer</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;TabContainer1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">ActiveTabIndex=</span><span style="color:#0000ff;">&#8220;0&#8243;</span> <span style="color:#ff0000;">Height=</span><span style="color:#0000ff;">&#8220;300px&#8221;</span><br />
            <span style="color:#ff0000;">Width=</span><span style="color:#0000ff;">&#8220;100%&#8221;</span> <span style="color:#ff0000;">OnClientActiveTabChanged=</span><span style="color:#0000ff;">&#8220;preview&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
            <span style="font-weight:bold;color:#000080;">&lt;ajaxToolkit:TabPanel</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">HeaderText=</span><span style="color:#0000ff;">&#8220;Edit Post&#8221;</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;TabPanel1&#8243;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
                <span style="font-weight:bold;color:#000080;">&lt;ContentTemplate&gt;</span><br />
                    <span style="color:#008800;font-style:italic;">&lt;!&#8211; Gets replaced with TinyMCE, remember HTML in a textarea should be encoded &#8211;&gt;</span><br />
                    <span style="font-weight:bold;color:#000080;">&lt;textarea</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;elm1&#8243;</span> <span style="color:#ff0000;">name=</span><span style="color:#0000ff;">&#8220;elm1&#8243;</span> <span style="color:#ff0000;">rows=</span><span style="color:#0000ff;">&#8220;15&#8243;</span> <span style="color:#ff0000;">cols=</span><span style="color:#0000ff;">&#8220;80&#8243;</span> <span style="color:#ff0000;">style=</span><span style="color:#0000ff;">&#8220;width: 99%; height: 280px;&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;p&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;img</span> <span style="color:#ff0000;">src=</span><span style="color:#0000ff;">&#8220;media/logo.jpg&#8221;</span> <span style="color:#ff0000;">alt=</span><span style="color:#0000ff;">&#8221; &#8220;</span> <span style="color:#ff0000;">hspace=</span><span style="color:#0000ff;">&#8220;5&#8243;</span> <span style="color:#ff0000;">vspace=</span><span style="color:#0000ff;">&#8220;5&#8243;</span> <span style="color:#ff0000;">width=</span><span style="color:#0000ff;">&#8220;250&#8243;</span> <span style="color:#ff0000;">height=</span><span style="color:#0000ff;">&#8220;48&#8243;</span> <span style="color:#ff0000;">align=</span><span style="color:#0000ff;">&#8220;right&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span>    TinyMCE is a platform independent web based Javascript HTML <span style="font-weight:bold;color:#000080;">&lt;strong&gt;</span>WYSIWYG<span style="font-weight:bold;color:#000080;">&lt;/strong&gt;</span> editor control released as Open Source under LGPL by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances. TinyMCE is very easy to integrate into other Content Management Systems.<br />
        <span style="font-weight:bold;color:#000080;">&lt;/p&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;p&gt;</span><br />
        We recommend <span style="font-weight:bold;color:#000080;">&lt;a</span> <span style="color:#ff0000;">href=</span><span style="color:#0000ff;">&#8220;http://www.getfirefox.com&#8221;</span> <span style="color:#ff0000;">target=</span><span style="color:#0000ff;">&#8220;_blank&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span>Firefox<span style="font-weight:bold;color:#000080;">&lt;/a&gt;</span> and <span style="font-weight:bold;color:#000080;">&lt;a</span> <span style="color:#ff0000;">href=</span><span style="color:#0000ff;">&#8220;http://www.google.com&#8221;</span> <span style="color:#ff0000;">target=</span><span style="color:#0000ff;">&#8220;_blank&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span>Google<span style="font-weight:bold;color:#000080;">&lt;/a&gt;</span> <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;/p&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/textarea&gt;</span><br />
                <span style="font-weight:bold;color:#000080;">&lt;/ContentTemplate&gt;</span><br />
            <span style="font-weight:bold;color:#000080;">&lt;/ajaxToolkit:TabPanel&gt;</span><br />
            <span style="font-weight:bold;color:#000080;">&lt;ajaxToolkit:TabPanel</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">HeaderText=</span><span style="color:#0000ff;">&#8220;Preview&#8221;</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;TabPanel2&#8243;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
                <span style="font-weight:bold;color:#000080;">&lt;ContentTemplate&gt;</span><br />
                    <span style="font-weight:bold;color:#000080;">&lt;asp:Label</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Label1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;Label&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/asp:Label&gt;</span><br />
                <span style="font-weight:bold;color:#000080;">&lt;/ContentTemplate&gt;</span><br />
            <span style="font-weight:bold;color:#000080;">&lt;/ajaxToolkit:TabPanel&gt;</span><br />
            <span style="font-weight:bold;color:#000080;">&lt;ajaxToolkit:TabPanel</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">HeaderText=</span><span style="color:#0000ff;">&#8220;TabPanel3&#8243;</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;TabPanel3&#8243;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
                <span style="font-weight:bold;color:#000080;">&lt;ContentTemplate&gt;</span><br />
                    Other<br />
                <span style="font-weight:bold;color:#000080;">&lt;/ContentTemplate&gt;</span><br />
            <span style="font-weight:bold;color:#000080;">&lt;/ajaxToolkit:TabPanel&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;/ajaxToolkit:TabContainer&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:Button</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Button1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;Button&#8221;</span> <span style="color:#ff0000;">OnClientClick=</span><span style="color:#0000ff;">&#8220;document.write(tinyMCE.get(&#8216;elm1&#8242;).getContent());return false;&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> preview() {<br />
            <span style="font-weight:bold;color:#000080;">if</span> ($find(<span style="color:#0000ff;">&#8220;TabContainer1&#8243;</span>).get_activeTabIndex() == <span style="color:#0000ff;">1</span>) {<br />
                $get(<span style="color:#0000ff;">&#8220;&lt;%=Label1.ClientID %&gt;&#8221;</span>).innerHTML = tinyMCE.get(<span style="color:#0000ff;">&#8216;elm1&#8242;</span>).getContent();<br />
            }<br />
        }<br />
    <span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;/form&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/body&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/html&gt;</span></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/108/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/108/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/108/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=108&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2009/01/20/tinymce-editor-and-ajax-control-toolkit-tab-control/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>
	</item>
		<item>
		<title>Create Tooltip dynamically by AJAX and WebService</title>
		<link>http://lancezhang.wordpress.com/2009/01/12/create-tooltip-dynamically-by-ajax-and-webservice/</link>
		<comments>http://lancezhang.wordpress.com/2009/01/12/create-tooltip-dynamically-by-ajax-and-webservice/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 07:18:29 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[ASP.NET AJAX Advance Tips & Tricks]]></category>
		<category><![CDATA[Code and Solution]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[WebService]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=93</guid>
		<description><![CDATA[Use Pop up div by JavaScript or AJAX Control Toolkit&#8217;s Hover Menu control can create a Tooltip easily. However, if we need to create the content of tooltip dynamically by the Server-Side code, we can use the ICallbackEventHandler to achieve the faing goal, just like the solution in following link: http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically/ When you move the mouse [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=93&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Use Pop up div by JavaScript or AJAX Control Toolkit&#8217;s Hover Menu control can create a Tooltip easily.</p>
<p>However, if we need to create the content of tooltip dynamically by the Server-Side code, we can use the <span style="color:#2b91af;">ICallbackEventHandler</span> to achieve the faing goal, just like the solution in following link:</p>
<p><a href="http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically/">http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically/</a></p>
<p>When you move the mouse on the text, the related image and text which will be created on the code-behind show up in the tooltip after 1 second. during the loading process, a &#8220;loading&#8221; gif picture will display in the tooltip box.</p>
<p>If we are using ASP.NET AJAX, the same effect can be achieve by <span style="color:#0000ff;">AJAX Page Method </span>easily, just like the solution in following link:</p>
<p><a href="http://lancezhang.wordpress.com/2009/01/12/create-tooltip-dynamically-by-ajax-pagemethod/">http://lancezhang.wordpress.com/2009/01/12/create-tooltip-dynamically-by-ajax-pagemethod/</a></p>
<p>And we can also use WebService and AJAX to achieve the same goal.</p>
<p>Ok, here we go:</p>
<h2>Step 1:</h2>
<p>First, let&#8217;s add the WebService reference to our page:<span style="font-weight:bold;color:#000080;"></span></p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;">
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">&lt;asp:ScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;Services&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:ServiceReference</span> <span style="color:#ff0000;">Path=</span><span style="color:#0000ff;">&#8220;~/tooltiptest3.asmx&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/Services&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/asp:ScriptManager&gt;</span></div>
</div>
</div>
</div>
<h2>Step 2:</h2>
<p>Let&#8217;s create the WebService for create tooltip message:</p>
<p><span style="font-weight:bold;color:#000080;"></p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div style="background:#fdfdfd;"><span style="text-decoration:underline;">C#</span>: <a href="http://www.fayaa.com/code/view//">tooltiptest3.asmx</a></div>
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;">&lt;%<span style="color:#a61717;background-color:#e3d2d2;">@</span> WebService Language=<span style="color:#0000ff;">&#8220;C#&#8221;</span> Class=<span style="color:#0000ff;">&#8220;tooltiptest3&#8243;</span> %&gt;</p>
<p><span style="font-weight:bold;color:#000080;">using</span> System;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.Services;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.Services.Protocols;</p>
<p><span style="color:#ff0000;">[WebService(Namespace = "http://tempuri.org/")]</span><br />
<span style="color:#ff0000;">[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]</span><br />
<span style="color:#008800;font-style:italic;">// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. </span><br />
<span style="color:#ff0000;">[System.Web.Script.Services.ScriptService]</span><br />
<span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">class</span> tooltiptest3  : System.Web.Services.WebService <span style="font-weight:bold;color:#000080;">{</span></p>
<p><span style="color:#ff0000;">    [WebMethod]</span><br />
    <span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">string</span> GetTooltip(<span style="font-weight:bold;color:#000080;">string</span> imagename)<br />
    <span style="font-weight:bold;color:#000080;">{</span><br />
        System.Threading.Thread.Sleep(<span style="color:#0000ff;">1000</span>);<br />
        <span style="font-weight:bold;color:#000080;">return</span> <span style="color:#0000ff;">@&#8221;this is just a demo: &lt;br&gt;&lt;img src=&#8217;&#8221;</span> + imagename + <span style="color:#0000ff;">&#8220;&#8216;/&gt;&#8221;</span>;<br />
    <span style="font-weight:bold;color:#000080;">}</span><br />
   <br />
<span style="font-weight:bold;color:#000080;">}</span></div>
</div>
<p></span></p>
<h2>Step 3:</h2>
<p>Complete the JavaScript code to invoke the page method:</p>
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">var</span> positionX;<br />
    <span style="font-weight:bold;color:#000080;">var</span> positionY;</p>
<p>    <span style="font-weight:bold;color:#000080;">function</span> onSuccess(value) {<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = value;<br />
    }</p>
<p>    <span style="font-weight:bold;color:#000080;">function</span> onFailed(ex, ctx, methodName) {<br />
        alert(ex.get_exceptionType());<br />
    }</p>
<p>    <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOut() {<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;none&#8217;</span>;<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = <span style="color:#0000ff;">&#8220;&lt;img src=&#8217;loading.gif&#8217;/&gt;&#8221;</span>;<br />
    }</p>
<p>    <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOver(Label) {</p>
<p>        tooltiptest3.GetTooltip(Label.innerText, onSuccess, onFailed);</p>
<p>        positionX = event.clientX;<br />
        positionY = event.clientY;<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.left = positionX;<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.top = positionY;<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;block&#8217;</span>;<br />
    }<br />
          <br />
   <br />
<span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></div>
<p>OK, the full page code is following:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Page Language=&#8221;C#&#8221; %&gt;</p>
<p><span style="color:#008080;">&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;html</span> <span style="color:#ff0000;">xmlns=</span><span style="color:#0000ff;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;head</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;Head1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">var</span> positionX;<br />
        <span style="font-weight:bold;color:#000080;">var</span> positionY;</p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> onSuccess(value) {<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = value;<br />
        }</p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> onFailed(ex, ctx, methodName) {<br />
            alert(ex.get_exceptionType());<br />
        }</p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOut() {<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;none&#8217;</span>;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = <span style="color:#0000ff;">&#8220;&lt;img src=&#8217;loading.gif&#8217;/&gt;&#8221;</span>;<br />
        }</p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOver(Label) {</p>
<p>            tooltiptest3.GetTooltip(Label.innerText, onSuccess, onFailed);</p>
<p>            positionX = event.clientX;<br />
            positionY = event.clientY;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.left = positionX;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.top = positionY;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;block&#8217;</span>;<br />
        }<br />
              <br />
       <br />
    <span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;style </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/css&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        .style1<br />
        {<br />
            <span style="font-weight:bold;color:#000080;">border</span>: <span style="color:#0000ff;">1px</span> <span style="font-weight:bold;color:#000080;">solid</span> <span style="color:#0000ff;">#96C2F1</span>;<br />
            <span style="font-weight:bold;color:#000080;">background-color</span>: <span style="color:#0000ff;">#EFF7FF</span>;<br />
            <span style="font-weight:bold;color:#000080;">position</span>: <span style="font-weight:bold;color:#000080;">absolute</span>;<br />
            <span style="font-weight:bold;color:#000080;">display</span>: <span style="font-weight:bold;color:#000080;">none</span>;<br />
            filter: alpha(<span style="font-weight:bold;color:#000080;">opacity</span>=<span style="color:#0000ff;">80</span>);<br />
            <span style="font-weight:bold;color:#000080;">opacity</span>: <span style="color:#0000ff;">0</span>.<span style="color:#0000ff;">80</span>;<br />
        }<br />
    <span style="font-weight:bold;color:#000080;">&lt;/style&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;title&gt;</span>Untitled Page<span style="font-weight:bold;color:#000080;">&lt;/title&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/head&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;body</span> <span style="color:#ff0000;">style=</span><span style="color:#0000ff;">&#8220;font-family: Calibri; font-size: 15px;&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;form</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;form1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;asp:ScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;Services&gt;</span><br />
            <span style="font-weight:bold;color:#000080;">&lt;asp:ServiceReference</span> <span style="color:#ff0000;">Path=</span><span style="color:#0000ff;">&#8220;~/tooltiptest3.asmx&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;/Services&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/asp:ScriptManager&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;tooltipDiv&#8221;</span> <span style="color:#ff0000;">class=</span><span style="color:#0000ff;">&#8220;style1&#8243;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;img</span> <span style="color:#ff0000;">src=</span><span style="color:#0000ff;">&#8220;loading.gif&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:Label</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Label1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;http://forums.asp.net/Themes/FAN/style/i/logo.png&#8221;</span><br />
            <span style="color:#ff0000;">onmouseout=</span><span style="color:#0000ff;">&#8220;HandleMouseOut()&#8221;</span> <span style="color:#ff0000;">onmouseover=</span><span style="color:#0000ff;">&#8220;HandleMouseOver(this)&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/asp:Label&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:Label</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Label2&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;http://forums.asp.net/Themes/fan/images/roleicons/a874d69e-0ac8-4b80-acc7-512767e281f6.gif&#8221;</span><br />
            <span style="color:#ff0000;">onmouseout=</span><span style="color:#0000ff;">&#8220;HandleMouseOut()&#8221;</span> <span style="color:#ff0000;">onmouseover=</span><span style="color:#0000ff;">&#8220;HandleMouseOver(this)&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/asp:Label&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/form&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/body&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/html&gt;</span></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/93/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/93/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/93/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=93&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2009/01/12/create-tooltip-dynamically-by-ajax-and-webservice/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>
	</item>
		<item>
		<title>Create Tooltip dynamically by AJAX PageMethod</title>
		<link>http://lancezhang.wordpress.com/2009/01/12/create-tooltip-dynamically-by-ajax-pagemethod/</link>
		<comments>http://lancezhang.wordpress.com/2009/01/12/create-tooltip-dynamically-by-ajax-pagemethod/#comments</comments>
		<pubDate>Mon, 12 Jan 2009 07:15:55 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[ASP.NET AJAX Advance Tips & Tricks]]></category>
		<category><![CDATA[Code and Solution]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=90</guid>
		<description><![CDATA[Use Pop up div by JavaScript or AJAX Control Toolkit&#8217;s Hover Menu control can create a Tooltip easily. However, if we need to create the content of tooltip dynamically by the Server-Side code, we can use the ICallbackEventHandler to achieve the faing goal, just like the solution in following link: http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically When you move the mouse [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=90&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Use Pop up div by JavaScript or AJAX Control Toolkit&#8217;s Hover Menu control can create a Tooltip easily.</p>
<p>However, if we need to create the content of tooltip dynamically by the Server-Side code, we can use the <span style="color:#2b91af;">ICallbackEventHandler</span> to achieve the faing goal, just like the solution in following link:</p>
<p><a href="http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically">http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically</a></p>
<p>When you move the mouse on the text, the related image and text which will be created on the code-behind show up in the tooltip after 1 second. during the loading process, a &#8220;loading&#8221; gif picture will display in the tooltip box.</p>
<p>If we are using ASP.NET AJAX, the same effect can be achieve by <span style="color:#0000ff;">AJAX Page Method </span>easily.</p>
<p>Ok, here we go:</p>
<h2>Step 1:</h2>
<p>we need to set the <span style="color:#ff0000;">EnablePageMethods</span><span style="color:#0000ff;">=&#8221;true&#8221; </span>for our <span style="color:#800000;">ScriptManager </span>or <span style="color:#800000;">ToolkitScriptManager</span>:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">&lt;asp:ScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">EnablePageMethods=</span><span style="color:#0000ff;">&#8220;true&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/asp:ScriptManager&gt;</span></div>
</div>
<h2>Step 2:</h2>
<p>Let&#8217;s create the Server-side method for create tooltip message, please notice the using references and attribute:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">using</span> System;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Collections.Generic;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Linq;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.Script.Services;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.Services;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.UI;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.UI.WebControls;</p>
<p><span style="color:#ff0000;">[ScriptService]</span><br />
<span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">partial</span> <span style="font-weight:bold;color:#000080;">class</span> tooltiptest2 : System.Web.UI.Page<br />
<span style="font-weight:bold;color:#000080;">{</span><br />
    <span style="font-weight:bold;color:#000080;">protected</span> <span style="font-weight:bold;color:#000080;">void</span> Page_Load(<span style="font-weight:bold;color:#000080;">object</span> sender, EventArgs e)<br />
    <span style="font-weight:bold;color:#000080;">{</span></p>
<p>    <span style="font-weight:bold;color:#000080;">}</span></p>
<p><span style="color:#ff0000;">    [WebMethod]</span><br />
    <span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">static</span> <span style="font-weight:bold;color:#000080;">string</span> GetTooltip(<span style="font-weight:bold;color:#000080;">string</span> imagename)<br />
    <span style="font-weight:bold;color:#000080;">{</span><br />
        System.Threading.Thread.Sleep(<span style="color:#0000ff;">1000</span>);<br />
        <span style="font-weight:bold;color:#000080;">return</span> <span style="color:#0000ff;">@&#8221;this is just a demo: &lt;br&gt;&lt;img src=&#8217;&#8221;</span> + imagename + <span style="color:#0000ff;">&#8220;&#8216;/&gt;&#8221;</span>;<br />
    <span style="font-weight:bold;color:#000080;">}</span><br />
<span style="font-weight:bold;color:#000080;">}</span></div>
</div>
<p> </p>
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"></div>
<h2>Step 3:</h2>
<p>Complete the JavaScript code to invoke the page method:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">var</span> positionX;<br />
    <span style="font-weight:bold;color:#000080;">var</span> positionY;</div>
<p>    <span style="font-weight:bold;color:#000080;">function</span> onSuccess(value, ctx, methodName) {<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = value;<br />
    }</p>
<p>    <span style="font-weight:bold;color:#000080;">function</span> onFailed(ex, ctx, methodName) {<br />
        alert(ex.get_exceptionType());<br />
    }</p>
<p>    <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOut() {<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;none&#8217;</span>;<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = <span style="color:#0000ff;">&#8220;&lt;img src=&#8217;loading.gif&#8217;/&gt;&#8221;</span>;<br />
    }</p>
<p>    <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOver(Label) {</p>
<p>        PageMethods.GetTooltip(Label.innerText, onSuccess, onFailed);</p>
<p>        positionX = event.clientX;<br />
        positionY = event.clientY;<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.left = positionX;<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.top = positionY;<br />
        document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;block&#8217;</span>;<br />
    }<br />
  <br />
<span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p>OK, the full code is following:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Page Language=&#8221;C#&#8221; AutoEventWireup=&#8221;true&#8221; CodeFile=&#8221;tooltiptest2.aspx.cs&#8221; Inherits=&#8221;tooltiptest2&#8243; %&gt;</div>
<p><span style="color:#008080;">&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;html</span> <span style="color:#ff0000;">xmlns=</span><span style="color:#0000ff;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;head</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;Head1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">var</span> positionX;<br />
        <span style="font-weight:bold;color:#000080;">var</span> positionY;</p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> onSuccess(value, ctx, methodName) {<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = value;<br />
        }</p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> onFailed(ex, ctx, methodName) {<br />
            alert(ex.get_exceptionType());<br />
        }</p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOut() {<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;none&#8217;</span>;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = <span style="color:#0000ff;">&#8220;&lt;img src=&#8217;loading.gif&#8217;/&gt;&#8221;</span>;<br />
        }</p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOver(Label) {</p>
<p>            PageMethods.GetTooltip(Label.innerText, onSuccess, onFailed);</p>
<p>            positionX = event.clientX;<br />
            positionY = event.clientY;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.left = positionX;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.top = positionY;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;block&#8217;</span>;<br />
        }<br />
      <br />
    <span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;style </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/css&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        .style1<br />
        {<br />
            <span style="font-weight:bold;color:#000080;">border</span>: <span style="color:#0000ff;">1px</span> <span style="font-weight:bold;color:#000080;">solid</span> <span style="color:#0000ff;">#96C2F1</span>;<br />
            <span style="font-weight:bold;color:#000080;">background-color</span>: <span style="color:#0000ff;">#EFF7FF</span>;<br />
            <span style="font-weight:bold;color:#000080;">position</span>: <span style="font-weight:bold;color:#000080;">absolute</span>;<br />
            <span style="font-weight:bold;color:#000080;">display</span>: <span style="font-weight:bold;color:#000080;">none</span>;<br />
            filter: alpha(<span style="font-weight:bold;color:#000080;">opacity</span>=<span style="color:#0000ff;">80</span>);<br />
            <span style="font-weight:bold;color:#000080;">opacity</span>: <span style="color:#0000ff;">0</span>.<span style="color:#0000ff;">80</span>;<br />
        }<br />
    <span style="font-weight:bold;color:#000080;">&lt;/style&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;title&gt;</span>Untitled Page<span style="font-weight:bold;color:#000080;">&lt;/title&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/head&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;body</span> <span style="color:#ff0000;">style=</span><span style="color:#0000ff;">&#8220;font-family: Calibri; font-size: 15px;&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;form</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;form1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;asp:ScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">EnablePageMethods=</span><span style="color:#0000ff;">&#8220;true&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/asp:ScriptManager&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;tooltipDiv&#8221;</span> <span style="color:#ff0000;">class=</span><span style="color:#0000ff;">&#8220;style1&#8243;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;img</span> <span style="color:#ff0000;">src=</span><span style="color:#0000ff;">&#8220;loading.gif&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:Label</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Label1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;http://forums.asp.net/Themes/FAN/style/i/logo.png&#8221;</span><br />
            <span style="color:#ff0000;">onmouseout=</span><span style="color:#0000ff;">&#8220;HandleMouseOut()&#8221;</span> <span style="color:#ff0000;">onmouseover=</span><span style="color:#0000ff;">&#8220;HandleMouseOver(this)&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/asp:Label&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:Label</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Label2&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;http://forums.asp.net/Themes/fan/images/roleicons/a874d69e-0ac8-4b80-acc7-512767e281f6.gif&#8221;</span><br />
            <span style="color:#ff0000;">onmouseout=</span><span style="color:#0000ff;">&#8220;HandleMouseOut()&#8221;</span> <span style="color:#ff0000;">onmouseover=</span><span style="color:#0000ff;">&#8220;HandleMouseOver(this)&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/asp:Label&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/form&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/body&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/html&gt;</span></div>
</div>
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">using</span> System;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Collections.Generic;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Linq;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.Script.Services;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.Services;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.UI;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.UI.WebControls;</div>
<p><span style="color:#ff0000;">[ScriptService]</span><br />
<span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">partial</span> <span style="font-weight:bold;color:#000080;">class</span> tooltiptest2 : System.Web.UI.Page<br />
<span style="font-weight:bold;color:#000080;">{</span><br />
    <span style="font-weight:bold;color:#000080;">protected</span> <span style="font-weight:bold;color:#000080;">void</span> Page_Load(<span style="font-weight:bold;color:#000080;">object</span> sender, EventArgs e)<br />
    <span style="font-weight:bold;color:#000080;">{</span></p>
<p>    <span style="font-weight:bold;color:#000080;">}</span></p>
<p><span style="color:#ff0000;">    [WebMethod]</span><br />
    <span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">static</span> <span style="font-weight:bold;color:#000080;">string</span> GetTooltip(<span style="font-weight:bold;color:#000080;">string</span> imagename)<br />
    <span style="font-weight:bold;color:#000080;">{</span><br />
        System.Threading.Thread.Sleep(<span style="color:#0000ff;">1000</span>);<br />
        <span style="font-weight:bold;color:#000080;">return</span> <span style="color:#0000ff;">@&#8221;this is just a demo: &lt;br&gt;&lt;img src=&#8217;&#8221;</span> + imagename + <span style="color:#0000ff;">&#8220;&#8216;/&gt;&#8221;</span>;<br />
    <span style="font-weight:bold;color:#000080;">}</span><br />
}</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/90/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/90/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/90/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=90&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2009/01/12/create-tooltip-dynamically-by-ajax-pagemethod/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>
	</item>
		<item>
		<title>How to change the Culture of CalendarExtender programmatically</title>
		<link>http://lancezhang.wordpress.com/2009/01/09/change-culture-calendarextender/</link>
		<comments>http://lancezhang.wordpress.com/2009/01/09/change-culture-calendarextender/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 09:16:36 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[ASP.NET AJAX Advance Tips & Tricks]]></category>
		<category><![CDATA[Code and Solution]]></category>
		<category><![CDATA[Calendar]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=79</guid>
		<description><![CDATA[Based on my knowledge, the CalendarExtender’s language is based on the “Sys.CultureInfo.CurrentCulture.dateTimeFormat”, all of the primary function “_buildDays” “_buildMonths”  “_performLayout”  “_getFirstDayOfWeek” use the “Sys.CultureInfo.CurrentCulture.dateTimeFormat”. So, if we need change the language or culture of CalendarExtender, we need to change the “Sys.CultureInfo.CurrentCulture.dateTimeFormat”. There are two ways can change the “Sys.CultureInfo.CurrentCulture.dateTimeFormat”: 1. Change the CurrentCulture in code-behind, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=79&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Based on my knowledge, the CalendarExtender’s language is based on the “<span style="color:#000080;">Sys.CultureInfo.CurrentCulture.dateTimeFormat</span>”, all of the primary function “_<span style="color:#993300;">buildDays</span>” “_<span style="color:#993300;">buildMonths</span>”  “_<span style="color:#993300;">performLayout</span>”  “_<span style="color:#993300;">getFirstDayOfWeek</span>” use the “<span style="color:#003366;">Sys.CultureInfo.CurrentCulture.dateTimeFormat</span>”.</p>
<p>So, if we need change the language or culture of <span style="color:#993300;">CalendarExtender</span>, we need to change the “<span style="color:#003366;">Sys.CultureInfo.CurrentCulture.dateTimeFormat</span>”.</p>
<p>There are two ways can change the “<span style="color:#003366;">Sys.CultureInfo.CurrentCulture.dateTimeFormat</span>”:</p>
<p><strong>1. Change the CurrentCulture in code-behind, by the following code:</strong> </p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">protected</span> <span style="font-weight:bold;color:#000080;">void</span> Page_Load(<span style="font-weight:bold;color:#000080;">object</span> sender, EventArgs e)<br />
<span style="font-weight:bold;color:#000080;">{</span><br />
    <span style="font-weight:bold;color:#000080;">string</span> Lang = <span style="color:#0000ff;">&#8220;ro-RO&#8221;</span>;<span style="color:#008800;font-style:italic;">//set your culture here</span><br />
    System.Threading.Thread.CurrentThread.CurrentCulture =<br />
        <span style="font-weight:bold;color:#000080;">new</span> System.Globalization.CultureInfo(Lang);<br />
<span style="font-weight:bold;color:#000080;">}</span></div>
</div>
<p>If you add the following code to your page, and set the <span style="color:#ff0000;">EnableScriptGlobalization</span><span style="color:#0000ff;">=&#8221;true&#8221;</span> to your <span style="color:#993300;">ToolkitScriptManager</span> or <span style="color:#993300;">ScriptManager</span>, the language and culture of <span style="color:#993300;">CalendarExtender</span> will be “<span style="color:#993300;">ro-RO</span>” (more culture symbol, please visit: <a href="http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(VS.80).aspx">http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo(VS.80).aspx</a>)</p>
<p><strong>2. Change the <span style="color:#003366;">Sys.CultureInfo.CurrentCulture.dateTimeFormat </span>by JavaScript, and then, dispose and recreate the <span style="color:#993300;">CalendarExtender</span>.</strong></p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">function</span> pageLoad(sender, args) <span style="color:#008080;">{</span></p>
<p>        //<span style="color:#ff0000;">Step1</span>:<br />
        //<span style="color:#ff0000;">dispose</span> <span style="color:#ff0000;">the</span> <span style="color:#ff0000;">original</span> <span style="color:#ff0000;">CalendarExtender</span>, <span style="color:#ff0000;">change</span> <span style="color:#0000ff;">&#8220;CalendarExtender2&#8243;</span> <span style="color:#ff0000;">to</span> <span style="color:#ff0000;">the</span> <span style="color:#ff0000;">BehaviorID</span> <span style="color:#ff0000;">of</span> <span style="color:#ff0000;">your</span> <span style="color:#ff0000;">CalendarExtender</span><br />
        $find(<span style="color:#0000ff;">&#8220;CalendarExtender2&#8243;</span>).<span style="color:#ff0000;">dispose</span>();</p>
<p>        //<span style="color:#ff0000;">Step2</span>:<br />
        //<span style="color:#ff0000;">change</span> <span style="color:#ff0000;">the</span> <span style="color:#0000ff;">&#8220;Sys.CultureInfo.CurrentCulture.dateTimeFormat, as your wish&#8221;</span><br />
        <span style="color:#ff0000;">Sys</span>.<span style="color:#ff0000;">CultureInfo</span>.<span style="color:#ff0000;">CurrentCulture</span>.<span style="color:#ff0000;">dateTimeFormat</span>.<span style="color:#ff0000;">FirstDayOfWeek</span> = <span style="color:#0000ff;">3</span>;<br />
        <span style="color:#ff0000;">Sys</span>.<span style="color:#ff0000;">CultureInfo</span>.<span style="color:#ff0000;">CurrentCulture</span>.<span style="color:#ff0000;">dateTimeFormat</span>.<span style="color:#ff0000;">ShortestDayNames</span> = [<span style="color:#0000ff;">"0"</span>, <span style="color:#0000ff;">"1"</span>, <span style="color:#0000ff;">"2"</span>, <span style="color:#0000ff;">"3"</span>, <span style="color:#0000ff;">"4"</span>, <span style="color:#0000ff;">"5"</span>, <span style="color:#0000ff;">"6"</span>];</p>
<p>        //<span style="color:#ff0000;">Step3</span>:<br />
        //<span style="color:#ff0000;">Recreate</span> <span style="color:#ff0000;">the</span> <span style="color:#ff0000;">CalendarExtender</span><br />
        $create(<span style="color:#ff0000;">AjaxControlToolkit</span>.<span style="color:#ff0000;">CalendarBehavior</span>, { <span style="color:#0000ff;">&#8220;button&#8221;</span>: $get(<span style="color:#0000ff;">&#8220;image2&#8243;</span>), <span style="color:#0000ff;">&#8220;id&#8221;</span>: <span style="color:#0000ff;">&#8220;CalendarExtender2&#8243;</span>, <span style="color:#0000ff;">&#8220;popupPosition&#8221;</span>: <span style="color:#0000ff;">1</span> <span style="color:#008080;">}</span>, <span style="font-weight:bold;color:#000080;">null</span>, <span style="font-weight:bold;color:#000080;">null</span>, $get(<span style="color:#0000ff;">&#8220;TextBox1&#8243;</span>));<br />
    }     <br />
         <br />
<span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></div>
</div>
<p> Also, we need make sure the <span style="color:#ff0000;">EnableScriptGlobalization</span><span style="color:#0000ff;">=&#8221;true&#8221; </span>to your ToolkitScriptManager or <span style="color:#993300;">ScriptManager</span>.</p>
<p>For more information about “<span style="color:#003366;">Sys.CultureInfo.CurrentCulture.dateTimeFormat</span>”, please visit:<br />
<a href="http://msdn.microsoft.com/en-us/library/bb397445.aspx">http://msdn.microsoft.com/en-us/library/bb397445.aspx</a></p>
<p>For more information about create Extenders by <span style="color:#0000ff;">$create</span>, please visit:</p>
<p>ASP.NET AJAX Control Toolkit FAQ: 6.2 How do I create a ModalPopup programmatically?<br />
<a href="http://forums.asp.net/t/992919.aspx">http://forums.asp.net/t/992919.aspx</a></p>
<p>The full page demo is following:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:'Microsoft Yahei',Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Page Language=&#8221;C#&#8221; %&gt;</p>
<p><span style="color:#008080;">&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p>    protected void Page_Load(object sender, EventArgs e)<br />
    <span style="color:#008080;">{</span><br />
        <span style="color:#ff0000;">string</span> <span style="color:#ff0000;">Lang</span> = <span style="color:#0000ff;">&#8220;ro-RO&#8221;</span>;//<span style="color:#ff0000;">set</span> <span style="color:#ff0000;">your</span> <span style="color:#ff0000;">culture</span> <span style="color:#ff0000;">here</span><br />
        <span style="color:#ff0000;">System</span>.<span style="color:#ff0000;">Threading</span>.<span style="color:#ff0000;">Thread</span>.<span style="color:#ff0000;">CurrentThread</span>.<span style="color:#ff0000;">CurrentCulture</span> =<br />
            <span style="color:#ff0000;">new</span> <span style="color:#ff0000;">System</span>.<span style="color:#ff0000;">Globalization</span>.<span style="color:#ff0000;">CultureInfo</span>(<span style="color:#ff0000;">Lang</span>);<br />
    <span style="color:#008080;">}</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;html</span> <span style="color:#ff0000;">xmlns=</span><span style="color:#0000ff;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;head</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;Head1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;title&gt;&lt;/title&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/head&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;body&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;form</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;form1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;ajaxToolkit:ToolkitScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ToolkitScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">EnableScriptGlobalization=</span><span style="color:#0000ff;">&#8220;true&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/ajaxToolkit:ToolkitScriptManager&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:TextBox</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;TextBox1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/asp:TextBox&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;ajaxToolkit:CalendarExtender</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;CalendarExtender2&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">TargetControlID=</span><span style="color:#0000ff;">&#8220;TextBox1&#8243;</span><br />
            <span style="color:#ff0000;">FirstDayOfWeek=</span><span style="color:#0000ff;">&#8220;default&#8221;</span> <span style="color:#ff0000;">PopupButtonID=</span><span style="color:#0000ff;">&#8220;image2&#8243;</span> <span style="color:#ff0000;">Enabled=</span><span style="color:#0000ff;">&#8220;True&#8221;</span> <span style="color:#ff0000;">PopupPosition=</span><span style="color:#0000ff;">&#8220;BottomRight&#8221;</span><br />
            <span style="color:#ff0000;">BehaviorID=</span><span style="color:#0000ff;">&#8220;CalendarExtender2&#8243;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;/ajaxToolkit:CalendarExtender&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p>        <span style="font-weight:bold;color:#000080;">function</span> pageLoad(sender, args) <span style="color:#008080;">{</span></p>
<p>            //<span style="color:#ff0000;">Step1</span>:<br />
            //<span style="color:#ff0000;">dispose</span> <span style="color:#ff0000;">the</span> <span style="color:#ff0000;">original</span> <span style="color:#ff0000;">CalendarExtender</span>, <span style="color:#ff0000;">change</span> <span style="color:#0000ff;">&#8220;CalendarExtender2&#8243;</span> <span style="color:#ff0000;">to</span> <span style="color:#ff0000;">the</span> <span style="color:#ff0000;">BehaviorID</span> <span style="color:#ff0000;">of</span> <span style="color:#ff0000;">your</span> <span style="color:#ff0000;">CalendarExtender</span><br />
            $find(<span style="color:#0000ff;">&#8220;CalendarExtender2&#8243;</span>).<span style="color:#ff0000;">dispose</span>();</p>
<p>            //<span style="color:#ff0000;">Step2</span>:<br />
            //<span style="color:#ff0000;">change</span> <span style="color:#ff0000;">the</span> <span style="color:#0000ff;">&#8220;Sys.CultureInfo.CurrentCulture.dateTimeFormat, as your wish&#8221;</span><br />
            <span style="color:#ff0000;">Sys</span>.<span style="color:#ff0000;">CultureInfo</span>.<span style="color:#ff0000;">CurrentCulture</span>.<span style="color:#ff0000;">dateTimeFormat</span>.<span style="color:#ff0000;">FirstDayOfWeek</span> = <span style="color:#0000ff;">3</span>;<br />
            <span style="color:#ff0000;">Sys</span>.<span style="color:#ff0000;">CultureInfo</span>.<span style="color:#ff0000;">CurrentCulture</span>.<span style="color:#ff0000;">dateTimeFormat</span>.<span style="color:#ff0000;">ShortestDayNames</span> = [<span style="color:#0000ff;">"0"</span>, <span style="color:#0000ff;">"1"</span>, <span style="color:#0000ff;">"2"</span>, <span style="color:#0000ff;">"3"</span>, <span style="color:#0000ff;">"4"</span>, <span style="color:#0000ff;">"5"</span>, <span style="color:#0000ff;">"6"</span>];</p>
<p>            //<span style="color:#ff0000;">Step3</span>:<br />
            //<span style="color:#ff0000;">Recreate</span> <span style="color:#ff0000;">the</span> <span style="color:#ff0000;">CalendarExtender</span><br />
            $create(<span style="color:#ff0000;">AjaxControlToolkit</span>.<span style="color:#ff0000;">CalendarBehavior</span>, { <span style="color:#0000ff;">&#8220;button&#8221;</span>: $get(<span style="color:#0000ff;">&#8220;image2&#8243;</span>), <span style="color:#0000ff;">&#8220;id&#8221;</span>: <span style="color:#0000ff;">&#8220;CalendarExtender2&#8243;</span>, <span style="color:#0000ff;">&#8220;popupPosition&#8221;</span>: <span style="color:#0000ff;">1</span> <span style="color:#008080;">}</span>, <span style="font-weight:bold;color:#000080;">null</span>, <span style="font-weight:bold;color:#000080;">null</span>, $get(<span style="color:#0000ff;">&#8220;TextBox1&#8243;</span>));<br />
        }     <br />
             <br />
    <span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;/form&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/body&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/html&gt;</span></div>
</div>
<p>Thanks.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=79&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2009/01/09/change-culture-calendarextender/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>
	</item>
		<item>
		<title>Create Tooltip dynamically by ASP.NET Callback</title>
		<link>http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically/</link>
		<comments>http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically/#comments</comments>
		<pubDate>Thu, 04 Dec 2008 07:27:02 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[ICallbackEventHandler]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=75</guid>
		<description><![CDATA[Use Pop up div by JavaScript or AJAX Control Toolkit&#8217;s Hover Menu control can create a Tooltip easily. However, if we need to create the content of tooltip dynamically by the Server-Side code, we can use the ICallbackEventHandler to achieve the faing goal. Please try the following demo, when you move the mouse on the text, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=75&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Use Pop up div by JavaScript or AJAX Control Toolkit&#8217;s Hover Menu control can create a Tooltip easily.</p>
<p>However, if we need to create the content of tooltip dynamically by the Server-Side code, we can use the <span style="color:#2b91af;">ICallbackEventHandler</span> to achieve the faing goal.</p>
<p>Please try the following demo, when you move the mouse on the text, the related image and text which will be created on the code-behind show up in the tooltip after 1 second. during the loading process, a &#8220;loading&#8221; gif picture will display in the tooltip box.</p>
<p>Ok, here we go:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Page Language=&#8221;C#&#8221; AutoEventWireup=&#8221;true&#8221; CodeFile=&#8221;tooltiptest.aspx.cs&#8221; Inherits=&#8221;tooltiptest&#8221; %&gt;</div>
<p><span style="color:#008080;">&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;html</span> <span style="color:#ff0000;">xmlns=</span><span style="color:#0000ff;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;head</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;Head1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">var</span> positionX;<br />
        <span style="font-weight:bold;color:#000080;">var</span> positionY;<br />
        <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOver(Label) {<br />
            CallTheServer(Label.innerText, <span style="color:#0000ff;">&#8221;</span>);<br />
            positionX = event.clientX;<br />
            positionY = event.clientY;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.left = positionX;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.top = positionY;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;block&#8217;</span>;<br />
        }<br />
        <span style="font-weight:bold;color:#000080;">function</span> HandleMouseOut() {<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).style.display = <span style="color:#0000ff;">&#8216;none&#8217;</span>;<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = <span style="color:#0000ff;">&#8220;&lt;img src=&#8217;loading.gif&#8217;/&gt;&#8221;</span>;<br />
        }<br />
        <span style="font-weight:bold;color:#000080;">function</span> ReceiveServerData(arg, context) {<br />
            document.getElementById(<span style="color:#0000ff;">&#8216;tooltipDiv&#8217;</span>).innerHTML = arg;<br />
        }<br />
    <span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p>    <span style="font-weight:bold;color:#000080;">&lt;style </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/css&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        .style1<br />
        {<br />
            <span style="font-weight:bold;color:#000080;">border</span>: <span style="color:#0000ff;">1px</span> <span style="font-weight:bold;color:#000080;">solid</span> <span style="color:#0000ff;">#96C2F1</span>;<br />
            <span style="font-weight:bold;color:#000080;">background-color</span>: <span style="color:#0000ff;">#EFF7FF</span>;<br />
            <span style="font-weight:bold;color:#000080;">position</span>: <span style="font-weight:bold;color:#000080;">absolute</span>;<br />
            <span style="font-weight:bold;color:#000080;">display</span>: <span style="font-weight:bold;color:#000080;">none</span>;<br />
            filter: alpha(<span style="font-weight:bold;color:#000080;">opacity</span>=<span style="color:#0000ff;">80</span>);<br />
            <span style="font-weight:bold;color:#000080;">opacity</span>: <span style="color:#0000ff;">0</span>.<span style="color:#0000ff;">80</span>;<br />
        }<br />
    <span style="font-weight:bold;color:#000080;">&lt;/style&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;title&gt;</span>Untitled Page<span style="font-weight:bold;color:#000080;">&lt;/title&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/head&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;body</span> <span style="color:#ff0000;">style=</span><span style="color:#0000ff;">&#8220;font-family: Calibri; font-size: 15px;&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;form</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;form1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;tooltipDiv&#8221;</span> <span style="color:#ff0000;">class=</span><span style="color:#0000ff;">&#8220;style1&#8243;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;img</span> <span style="color:#ff0000;">src=</span><span style="color:#0000ff;">&#8220;loading.gif&#8221;</span><span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:Label</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Label1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;http://forums.asp.net/Themes/FAN/style/i/logo.png&#8221;</span><br />
            <span style="color:#ff0000;">onmouseout=</span><span style="color:#0000ff;">&#8220;HandleMouseOut()&#8221;</span> <span style="color:#ff0000;">onmouseover=</span><span style="color:#0000ff;">&#8220;HandleMouseOver(this)&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/asp:Label&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;br</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
        <span style="font-weight:bold;color:#000080;">&lt;asp:Label</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Label2&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;http://forums.asp.net/Themes/fan/images/roleicons/a874d69e-0ac8-4b80-acc7-512767e281f6.gif&#8221;</span><br />
            <span style="color:#ff0000;">onmouseout=</span><span style="color:#0000ff;">&#8220;HandleMouseOut()&#8221;</span> <span style="color:#ff0000;">onmouseover=</span><span style="color:#0000ff;">&#8220;HandleMouseOver(this)&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;&lt;/asp:Label&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/form&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/body&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/html&gt;</span> </p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div style="background:#fdfdfd;"><a href="http://www.fayaa.com/code/view//"></a> </div>
<div class="source" style="font-family:Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">using</span> System;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Collections.Generic;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Linq;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.UI;<br />
<span style="font-weight:bold;color:#000080;">using</span> System.Web.UI.WebControls;</div>
<p><span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">partial</span> <span style="font-weight:bold;color:#000080;">class</span> tooltiptest : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler<br />
<span style="font-weight:bold;color:#000080;">{</span><br />
    <span style="font-weight:bold;color:#000080;">string</span> tooltip;</p>
<p>    <span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">void</span> RaiseCallbackEvent(String eventArgument)<br />
    <span style="font-weight:bold;color:#000080;">{</span><br />
        <span style="font-weight:bold;color:#000080;">string</span> filename = eventArgument;<br />
        tooltip = GetTooltip(filename);<br />
    <span style="font-weight:bold;color:#000080;">}</span></p>
<p>    <span style="font-weight:bold;color:#000080;">public</span> <span style="font-weight:bold;color:#000080;">string</span> GetCallbackResult()<br />
    <span style="font-weight:bold;color:#000080;">{</span><br />
        <span style="font-weight:bold;color:#000080;">return</span> tooltip;<br />
    <span style="font-weight:bold;color:#000080;">}</span></p>
<p>    <span style="font-weight:bold;color:#000080;">protected</span> <span style="font-weight:bold;color:#000080;">string</span> GetTooltip(<span style="font-weight:bold;color:#000080;">string</span> imagename)<br />
    <span style="font-weight:bold;color:#000080;">{</span><br />
        System.Threading.Thread.Sleep(<span style="color:#0000ff;">1000</span>);<br />
        <span style="font-weight:bold;color:#000080;">return</span> <span style="color:#0000ff;">@&#8221;this is just a demo: &lt;br&gt;&lt;img src=&#8217;&#8221;</span> + imagename+<span style="color:#0000ff;">&#8220;&#8216;/&gt;&#8221;</span>;<br />
    <span style="font-weight:bold;color:#000080;">}</span></p>
<p>    <span style="font-weight:bold;color:#000080;">protected</span> <span style="font-weight:bold;color:#000080;">void</span> Page_Load(<span style="font-weight:bold;color:#000080;">object</span> sender, EventArgs e)<br />
    <span style="font-weight:bold;color:#000080;">{</span><br />
        String cbReference = Page.ClientScript.GetCallbackEventReference(<span style="font-weight:bold;color:#000080;">this</span>, <span style="color:#0000ff;">&#8220;arg&#8221;</span>, <span style="color:#0000ff;">&#8220;ReceiveServerData&#8221;</span>, <span style="color:#0000ff;">&#8220;context&#8221;</span>);<br />
        String callbackScript = <span style="color:#0000ff;">&#8220;function CallTheServer(arg, context) {&#8220;</span> + cbReference + <span style="color:#0000ff;">&#8220;; }&#8221;</span>;<br />
        Page.ClientScript.RegisterClientScriptBlock(<span style="font-weight:bold;color:#000080;">this</span>.GetType(), <span style="color:#0000ff;">&#8220;CallTheServer&#8221;</span>, callbackScript, <span style="font-weight:bold;color:#000080;">true</span>);<br />
    <span style="font-weight:bold;color:#000080;">}</span><br />
<span style="font-weight:bold;color:#000080;">}</span></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/75/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/75/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/75/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=75&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2008/12/04/create-tooltip-dynamically/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>
	</item>
		<item>
		<title>ASP.NET AJAX Performance Improvement</title>
		<link>http://lancezhang.wordpress.com/2008/11/15/aspnet-ajax-performance/</link>
		<comments>http://lancezhang.wordpress.com/2008/11/15/aspnet-ajax-performance/#comments</comments>
		<pubDate>Sat, 15 Nov 2008 12:12:37 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=38</guid>
		<description><![CDATA[Preface I think everyone would agree that AJAX is one of the elements of &#8220;Web 2.0&#8243;,  every web developers should know this technology. I have been collected a list of the popular AJAX Frameworks on my chinese tech blog, we will amazedly found that, there are more than 128 AJAX Frameworks! Refer to a voting result, among [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=38&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1><a href="http://lancezhang.files.wordpress.com/2008/11/references-without-any-optimizations.png"></a><a href="http://lancezhang.files.wordpress.com/2008/11/without-caching.png"></a><a href="http://lancezhang.files.wordpress.com/2008/11/with-caching.png"></a><a href="http://lancezhang.files.wordpress.com/2008/11/without-compression.png"></a><a href="http://lancezhang.files.wordpress.com/2008/11/with-compression.png"></a><a href="http://lancezhang.files.wordpress.com/2008/11/toolkitscriptmanager.png"></a>Preface</h1>
<p>I think everyone would agree that AJAX is one of the elements of &#8220;Web 2.0&#8243;,  every web developers should know this technology. I have been collected a list of the popular AJAX Frameworks on <a href="http://www.cnblogs.com/blodfox777/archive/2008/10/21/1295232.html" target="_blank">my chinese tech blog</a>, we will amazedly found that, there are more than 128 AJAX Frameworks!</p>
<p><a href="http://lancezhang.files.wordpress.com/2008/11/ajax-frameworks1.png"><img class="alignnone size-full wp-image-40" title="ajax-frameworks1" src="http://lancezhang.files.wordpress.com/2008/11/ajax-frameworks1.png?w=614&#038;h=384" alt="ajax-frameworks1" width="614" height="384" /></a></p>
<p>Refer to a <a href="http://codeclimber.net.nz/archive/2007/12/21/.NET-Ajax-Survey-results.aspx" target="_blank">voting result</a>, among the 95% of the .NET developers that said they are using some flavor of Ajax either in production, development or prototype, the most used AJAX Framework is ASP.NET AJAX, with 73,7%, followed by the Ajax Control Toolkit which is used by almost half of the .NET developer that are using Ajax.<br />
<img class="alignleft" src="http://codeclimber.net.nz/images/codeclimber_net_nz/WindowsLiveWriter/ed90f8129765.NETAjaxSurveyresults_125A9/Top10_3.gif" alt="" width="314" height="205" /></p>
<p>However, many beginners always complain that, using ASP.NET AJAX make their web application slow down, don&#8217;t perform as well as they had hoped.  Today, I would like to share some experience on how to optimize the ASP.NET AJAX application.</p>
<p>So I created a simple page with a bunch of extenders on it: CalendarExtender, SliderExtender, NumericUpDownExtender, RoundedCornersExtender, and TabContainer for our experiments.</p>
<p>And I would like to introduce two useful tools for our Performance Analysis:</p>
<h3>1. HttpWatch to show the network traffic.</h3>
<p>Here&#8217;s how the network traffic looked before any optimization:</p>
<p>And we can see there are totally 22 requests and spend 9 seconds to get the 654k result. It is a really terrible in performance.</p>
<p><a href="http://lancezhang.files.wordpress.com/2008/11/without-any-optimizations.png"><img class="size-full wp-image-44 alignnone" title="without-any-optimizations" src="http://lancezhang.files.wordpress.com/2008/11/without-any-optimizations.png?w=694&#038;h=535" alt="without-any-optimizations" width="694" height="535" /></a></p>
<h3>2. ScriptReferenceProfiler to show the JavaScript reference.</h3>
<p>ScriptReferenceProfiler is an open source tool on CodePlex, for analysis the JavaScript references of ASP.NET AJAX, we can simply add the following code to our page in order to show the JavaScript references imported by ScriptManager.</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">&lt;microsoft:scriptreferenceprofiler</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/microsoft:scriptreferenceprofiler&gt;</span></div>
</div>
<p>We can see, before any optimization, there are 17 references found on this page, include the Microsoft Ajax Core runtime, asynchronous postback scripts, Ajax Control Toolkit Extender scripts and so on:</p>
<p><a href="http://lancezhang.files.wordpress.com/2008/11/references-without-any-optimizations.png"></a><a href="http://lancezhang.files.wordpress.com/2008/11/references-without-any-optimizations1.png"><img class="alignnone size-full wp-image-47" title="references-without-any-optimizations1" src="http://lancezhang.files.wordpress.com/2008/11/references-without-any-optimizations1.png?w=792&#038;h=637" alt="references-without-any-optimizations1" width="792" height="637" /></a></p>
<h1>Optimization in web.config</h1>
<p>To optimize the ASP.NET AJAX in our web application, first of all, we need to make sure the Compression and Caching is enabled in our web.config:</p>
<p class="source" style="font-family:Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="font-weight:bold;color:#000080;">&lt;system</span><span style="color:#a61717;background-color:#e3d2d2;">.</span><span style="color:#ff0000;">web</span><span style="color:#a61717;background-color:#e3d2d2;">.</span><span style="color:#ff0000;">extensions</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;script</span><span style="color:#ff0000;">ing</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;script</span><span style="color:#ff0000;">ResourceHandler</span> <span style="color:#ff0000;">enableCompression=</span><span style="color:#0000ff;">&#8220;true&#8221;</span> <span style="color:#ff0000;">enableCaching=</span><span style="color:#0000ff;">&#8220;true&#8221;</span><span style="font-weight:bold;color:#000080;">/&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/scripting&gt;</span><br />
<span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>/system.web.extensions&gt;</p>
<h2>1. Enable The Caching:</h2>
<p>We know, in the development of web application, enable the caching is a must operation. To enable the caching of ASP.NET AJAX, we need make sure the <span style="color:#ff0000;">enableCaching </span>property of scriptResourceHandler is set to <span style="color:#0000ff;">true</span>.</p>
<p>As our expected, the page response more quickly in the second time, the expend time is coming from <span style="color:#ff0000;">12.862 seconds </span>down to <span style="color:#0000ff;">0.409seconds</span>; and the received size from server decrease from <span style="color:#ff0000;">692K</span> to <span style="color:#0000ff;">14K</span>.</p>
<p><a href="http://lancezhang.files.wordpress.com/2008/11/without-caching.png"><img class="alignnone size-full wp-image-49" title="without-caching" src="http://lancezhang.files.wordpress.com/2008/11/without-caching.png?w=612&#038;h=454" alt="without-caching" width="612" height="454" /></a><a href="http://lancezhang.files.wordpress.com/2008/11/with-caching.png"><img class="alignnone size-full wp-image-50" title="with-caching" src="http://lancezhang.files.wordpress.com/2008/11/with-caching.png?w=608&#038;h=449" alt="with-caching" width="608" height="449" /></a></p>
<h2>2. Enable The Compression:</h2>
<p>The Caching will saving almost 95% of the network traffic in the second time we request the page, however, the first page request still ask for a huge data from server. How to reduce the first request? don&#8217;t worry, set <span style="color:#ff0000;">enableCompression </span>property of scriptResourceHandler to <span style="color:#0000ff;">true </span>will help:</p>
<p><a href="http://lancezhang.files.wordpress.com/2008/11/without-compression.png"><img class="alignnone size-full wp-image-53" title="without-compression" src="http://lancezhang.files.wordpress.com/2008/11/without-compression.png?w=435&#038;h=374" alt="without-compression" width="435" height="374" /></a><a href="http://lancezhang.files.wordpress.com/2008/11/with-compression.png"><img class="alignnone size-full wp-image-54" title="with-compression" src="http://lancezhang.files.wordpress.com/2008/11/with-compression.png?w=438&#038;h=377" alt="with-compression" width="438" height="377" /></a></p>
<p>As we can see in the screen shot, many script files are getting smaller. and the total size decrease form <span style="color:#ff0000;">692K </span>to <span style="color:#3366ff;">183K</span>, about <span style="color:#0000ff;">1/4</span> compare to before.</p>
<p>♣Note: The compression is not work in Internet Explorer 6.0, because there is an known bug in IE 6, that cause the mistake might be occur when receiving the Gzip header. So the develop team close all the compression ability in IE 6.</p>
<h1>Optimization in ScriptManager</h1>
<p>The ScriptManager control manages client script for AJAX-enabled ASP.NET Web pages. By default, the ScriptManager control registers the script for the Microsoft AJAX Library with the page. This enables client script to use the type system extensions and to support features such as partial-page rendering and Web-service calls. Following, we need to setting the property of ScriptManager to optimize the performance of ASP.NET AJAX.</p>
<h2>1. ScriptMode for Release</h2>
<p>In one of <a href="http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx" target="_blank">Scott Guthrie&#8217;s post</a><a href="http://lancezhang.files.wordpress.com/2008/11/disable-partial-rendering.png"></a>, he explain that we should avoid when deploying an ASP.NET application into production  leave the &lt;compilation debug=”true”/&gt; switch on within the application’s web.config file.</p>
<p>It will cause:</p>
<p>1) The compilation of ASP.NET pages takes longer (since some batch optimizations are disabled)</p>
<p>2) Code can execute slower (since some additional debug paths are enabled)</p>
<p>3) Much more memory is used within the application at runtime</p>
<p>4) Scripts and images downloaded from the WebResources.axd handler are not cached</p>
<p>In this scenario, we can set the ScriptManager on the page run into the release mode to like the following:</p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;color:blue;font-family:新宋体;" lang="EN-US">&lt;</span><span style="font-size:9pt;color:#a31515;font-family:新宋体;" lang="EN-US">asp</span><span style="font-size:9pt;color:blue;font-family:新宋体;" lang="EN-US">:</span><span style="font-size:9pt;color:#a31515;font-family:新宋体;" lang="EN-US">ScriptManager</span><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"> <span style="color:red;">ID</span><span style="color:blue;">=&#8221;ScriptManager1&#8243;</span> <span style="color:red;">runat</span><span style="color:blue;">=&#8221;server&#8221;</span> <span style="color:red;">ScriptMode</span><span style="color:blue;">=&#8221;Release&#8221;&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptManager</span><span style="color:blue;">&gt;</span></span></p>
<h2>2. EnablePartialRendering Yes or No?</h2>
<p>There is another property in ScriptManager named <span style="color:#ff0000;">EnablePartialRendering</span>,  it gets or sets a value that enables partial rendering of a page, which in turn enables you to update regions of the page individually by using UpdatePanel controls.</p>
<p>So, if we using the UpdatePanel in the page, we must set this property to true, conversely, if the UpdatePanel is not using in our page, it would be better that we set the EnablePartialRendering to false.</p>
<p>That will cause the unnecessary file &#8220;MicrosoftAjaxWebForm.js&#8221;, which is used to the partial rendering not import to our page.</p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;color:blue;font-family:新宋体;" lang="EN-US">&lt;</span><span style="font-size:9pt;color:#a31515;font-family:新宋体;" lang="EN-US">asp</span><span style="font-size:9pt;color:blue;font-family:新宋体;" lang="EN-US">:</span><span style="font-size:9pt;color:#a31515;font-family:新宋体;" lang="EN-US">ScriptManager</span><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"> <span style="color:red;">ID</span><span style="color:blue;">=&#8221;ScriptManager1&#8243;</span> <span style="color:red;">runat</span><span style="color:blue;">=&#8221;server&#8221;</span> <span style="color:red;">EnablePartialRendering</span><span style="color:blue;">=&#8221;false&#8221;&gt;</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:9pt;color:blue;font-family:新宋体;" lang="EN-US">&lt;/</span><span style="font-size:9pt;color:#a31515;font-family:新宋体;" lang="EN-US">asp</span><span style="font-size:9pt;color:blue;font-family:新宋体;" lang="EN-US">:</span><span style="font-size:9pt;color:#a31515;font-family:新宋体;" lang="EN-US">ScriptManager</span><span style="font-size:9pt;color:blue;font-family:新宋体;" lang="EN-US">&gt;</span></p>
<p><a href="http://lancezhang.files.wordpress.com/2008/11/disable-partial-rendering.png"><img class="alignnone size-full wp-image-57" title="disable-partial-rendering" src="http://lancezhang.files.wordpress.com/2008/11/disable-partial-rendering.png?w=787&#038;h=454" alt="disable-partial-rendering" width="787" height="454" /></a></p>
<h2>3. LoadScriptBeforeUI</h2>
<p>ScriptManager control has <span style="color:#ff0000;">LoadScriptsBeforeUI </span>property which we can set to “<span style="color:#0000ff;">False</span>” in order to postpone several script downloads after the content is downloaded and shown. This adds the script references end of the &lt;body&gt; tag. As a result, we will see the content first and then the additional scripts, exteders, AJAX Control Toolkit scripts get downloaded and initialized.</p>
<p>This will make the page show quikly, and provide a better User Experience.</p>
<h1>Script Combining</h1>
<p>In the previous talk, we can see the download size is coming down, but the number of requests is still more than 20</p>
<h2>1. ToolkitScriptManager</h2>
<p>There is a ToolkitScriptManager control in the AJAX Control Toolkit, we can replace the default &lt;asp:scriptmanager&gt; control with this, it supports the ability to dynamically merge multiple client-side Javascript scripts into a single file that is downloaded to the client at runtime.  Better yet, only the Javascript needed by the specific controls on the page are included within the combined download, to make it as small as possible.</p>
<p><a href="http://lancezhang.files.wordpress.com/2008/11/scriptmanager.png"><img class="alignnone size-full wp-image-60" title="scriptmanager" src="http://lancezhang.files.wordpress.com/2008/11/scriptmanager.png?w=507&#038;h=375" alt="scriptmanager" width="507" height="375" /></a><a href="http://lancezhang.files.wordpress.com/2008/11/toolkitscriptmanager.png"><img class="alignnone size-full wp-image-61" title="toolkitscriptmanager" src="http://lancezhang.files.wordpress.com/2008/11/toolkitscriptmanager.png?w=506&#038;h=216" alt="toolkitscriptmanager" width="506" height="216" /></a></p>
<p>As the screen shot shows, It is a big savings in requests -  we now get one request for Toolkit scripts instead of 12.  In this scenario, we also got about a 50% download speed improvement by only having one request.</p>
<h2>2. CompositeScript</h2>
<p>If you are using ASP.NET 3.5 with SP1, there is a more powerful tool to combining the Script file &#8211; CompositeScript.</p>
<p>First, We can use the ScriptReferenceProfiler to show the JavaScript references</p>
<p>and then, we can add &lt;CompositeScript&gt; and &lt;Scripts&gt; elements as children of the ScriptManager control.</p>
<p>Then, Copy the script references from the page and paste them into the <span class="LanguageKeyword0">&lt;Scripts&gt;</span> element inside the <span class="LanguageKeyword0">ScriptManager</span> control, the result mark up is following:</p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptManager</span> <span style="color:red;">ID</span><span style="color:blue;">=&#8221;ScriptManager1&#8243;</span> <span style="color:red;">runat</span><span style="color:blue;">=&#8221;server&#8221;</span> <span style="color:red;">EnablePartialRendering</span><span style="color:blue;">=&#8221;false&#8221;</span> <span style="color:red;">ScriptMode</span><span style="color:blue;">=&#8221;Release&#8221;</span> <span style="color:red;">LoadScriptsBeforeUI</span><span style="color:blue;">=&#8221;false&#8221;&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">CompositeScript</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">Scripts</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;MicrosoftAjax.js&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Common.Common.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.ExtenderBase.BaseScripts.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Tabs.Tabs.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.DynamicPopulate.DynamicPopulateBehavior.js&#8221;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Common.DateTime.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Compat.Timer.Timer.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Animation.Animations.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Animation.AnimationBehavior.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.PopupExtender.PopupBehavior.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Common.Threading.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Calendar.CalendarBehavior.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Compat.DragDrop.DragDropScripts.js&#8221;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptReference</span> <span style="color:red;">Name</span><span style="color:blue;">=&#8221;AjaxControlToolkit.Slider.SliderBehavior.js&#8221;</span> <span style="color:red;">Assembly</span><span style="color:blue;">=&#8221;AjaxControlToolkit, Version=3.0.20229.23352, Culture=neutral, PublicKeyToken=28f01b0e84b6d53e&#8221;</span> <span style="color:blue;">/&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">Scripts</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="text-align:left;margin:0;" align="left"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">CompositeScript</span><span style="color:blue;">&gt;</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:9pt;font-family:新宋体;" lang="EN-US"><span> </span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">ScriptManager</span><span style="color:blue;">&gt;</span></span></p>
<p>Run the page and view the traffic. We will see just one script reference now instead of all the script inside the &lt;Scripts&gt; element.</p>
<p><a href="http://lancezhang.files.wordpress.com/2008/11/combining.png"><img class="alignnone size-full wp-image-62" title="combining" src="http://lancezhang.files.wordpress.com/2008/11/combining.png?w=649&#038;h=177" alt="combining" width="649" height="177" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=38&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2008/11/15/aspnet-ajax-performance/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/ajax-frameworks1.png" medium="image">
			<media:title type="html">ajax-frameworks1</media:title>
		</media:content>

		<media:content url="http://codeclimber.net.nz/images/codeclimber_net_nz/WindowsLiveWriter/ed90f8129765.NETAjaxSurveyresults_125A9/Top10_3.gif" medium="image" />

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/without-any-optimizations.png" medium="image">
			<media:title type="html">without-any-optimizations</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/references-without-any-optimizations1.png" medium="image">
			<media:title type="html">references-without-any-optimizations1</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/without-caching.png" medium="image">
			<media:title type="html">without-caching</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/with-caching.png" medium="image">
			<media:title type="html">with-caching</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/without-compression.png" medium="image">
			<media:title type="html">without-compression</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/with-compression.png" medium="image">
			<media:title type="html">with-compression</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/disable-partial-rendering.png" medium="image">
			<media:title type="html">disable-partial-rendering</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/scriptmanager.png" medium="image">
			<media:title type="html">scriptmanager</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/toolkitscriptmanager.png" medium="image">
			<media:title type="html">toolkitscriptmanager</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/combining.png" medium="image">
			<media:title type="html">combining</media:title>
		</media:content>
	</item>
		<item>
		<title>ASP.NET AJAX Advance Tips &amp; Tricks (2) Create Rating Control dynamically</title>
		<link>http://lancezhang.wordpress.com/2008/11/10/create-rating-dynamically/</link>
		<comments>http://lancezhang.wordpress.com/2008/11/10/create-rating-dynamically/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 03:42:30 +0000</pubDate>
		<dc:creator>Lance Zhang</dc:creator>
				<category><![CDATA[ASP.NET AJAX]]></category>
		<category><![CDATA[ASP.NET AJAX Advance Tips & Tricks]]></category>
		<category><![CDATA[Tabs]]></category>

		<guid isPermaLink="false">http://lancezhang.wordpress.com/?p=32</guid>
		<description><![CDATA[Preface: Rating control of AJAX Control Toolkit are already widely used, However, many of my friends recently complained that if they create Rating control in code-behind dynamically, then, the Rating status will be lost after a PostBack(not into ViewState). This article describes two ways to solve the problem. To reproduce the problem: If we use [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=32&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h2>Preface:</h2>
<p>Rating control of AJAX Control Toolkit are already widely used, However, many of my friends recently complained that if they create Rating control in code-behind dynamically, then, the Rating status will be lost after a PostBack(not into ViewState). This article describes two ways to solve the problem.</p>
<h2>To reproduce the problem:</h2>
<p>If we use the following code to create Rating control dynamically, then after the Button click, Rating selected value will be lost:<br />
<a href="http://lancezhang.files.wordpress.com/2008/11/rating.jpg"><img class="alignnone size-full wp-image-33" title="rating" src="http://lancezhang.files.wordpress.com/2008/11/rating.jpg?w=215&#038;h=155" alt="rating" width="215" height="155" /></a></p>
<div class="source" style="font-family:Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Page Language=&#8221;C#&#8221; %&gt;</p>
<p><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Register Assembly=&#8221;AjaxControlToolkit&#8221; Namespace=&#8221;AjaxControlToolkit&#8221; TagPrefix=&#8221;cc1&#8243; %&gt;<br />
<span style="color:#008080;">&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span></p>
<p>    protected void Page_Load(object sender, EventArgs e)<br />
    <span style="color:#008080;">{</span><br />
        <span style="color:#ff0000;">AjaxControlToolkit</span>.<span style="color:#ff0000;">Rating</span> <span style="color:#ff0000;">rt</span> = <span style="color:#ff0000;">new</span> <span style="color:#ff0000;">Rating</span>();<br />
        <span style="color:#ff0000;">Page</span>.<span style="color:#ff0000;">Form</span>.<span style="color:#ff0000;">Controls</span>.<span style="color:#ff0000;">Add</span>(<span style="color:#ff0000;">rt</span>);<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">ID</span> = <span style="color:#0000ff;">&#8220;LikeRating&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">MaxRating</span> = <span style="color:#0000ff;">5</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">CurrentRating</span> = <span style="color:#0000ff;">2</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">StarCssClass</span> = <span style="color:#0000ff;">&#8220;ratingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">WaitingStarCssClass</span> = <span style="color:#0000ff;">&#8220;savedRatingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">FilledStarCssClass</span> = <span style="color:#0000ff;">&#8220;filledRatingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">EmptyStarCssClass</span> = <span style="color:#0000ff;">&#8220;emptyRatingStar&#8221;</span>;<br />
    <span style="color:#008080;">}</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span></p>
<p><span style="font-weight:bold;color:#000080;">&lt;html</span> <span style="color:#ff0000;">xmlns=</span><span style="color:#0000ff;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;head</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;title&gt;&lt;/title&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;style </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/css&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="color:#008800;font-style:italic;">/* Rating */</span>.ratingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">font</span>-<span style="color:#ff0000;">size</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">pt</span>;<br />
            <span style="color:#ff0000;">width</span>: <span style="color:#0000ff;">13</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">height</span>: <span style="color:#0000ff;">12</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">margin</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">padding</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">cursor</span>: <span style="color:#ff0000;">pointer</span>;<br />
            <span style="color:#ff0000;">display</span>: <span style="color:#ff0000;">block</span>;<br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">repeat</span>: <span style="color:#ff0000;">no</span>-<span style="color:#ff0000;">repeat</span>;<br />
        <span style="color:#008080;">}</span><br />
        .filledRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">FilledStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
        .emptyRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">EmptyStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
        .savedRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">SavedStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/style&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/head&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;body&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;form</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;form1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;cc1:ToolkitScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ToolkitScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/cc1:ToolkitScriptManager&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;asp:Button</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Button1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;Button&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/form&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;p&gt;</span><br />
        &amp;nbsp;<span style="font-weight:bold;color:#000080;">&lt;/p&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/body&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/html&gt;</span></div>
<h2><span style="color:#000000;"><br />
Reason</span></h2>
<p>The problem is because we cannot create the Rating control in the Page_Load, just as we create other server-side controls (for example, TextBox, and so on) in code-behind. the Rating control must be created in Page_Init if we need ViewState to save its status across the PostBack.</p>
<h2>Solution 1:</h2>
<p>We can create the Rating control in Page_Init:</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Page Language=&#8221;C#&#8221; %&gt;<span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Register Assembly=&#8221;AjaxControlToolkit&#8221; Namespace=&#8221;AjaxControlToolkit&#8221; TagPrefix=&#8221;cc1&#8243; %&gt;<br />
<span style="color:#008080;">&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</span><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span>void Page_Init(object sender, EventArgs e)<br />
    <span style="color:#008080;">{</span><br />
        <span style="color:#ff0000;">AjaxControlToolkit</span>.<span style="color:#ff0000;">Rating</span> <span style="color:#ff0000;">rt</span> = <span style="color:#ff0000;">new</span> <span style="color:#ff0000;">Rating</span>();<br />
        <span style="color:#ff0000;">Page</span>.<span style="color:#ff0000;">Form</span>.<span style="color:#ff0000;">Controls</span>.<span style="color:#ff0000;">Add</span>(<span style="color:#ff0000;">rt</span>);<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">ID</span> = <span style="color:#0000ff;">&#8220;LikeRating&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">MaxRating</span> = <span style="color:#0000ff;">5</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">CurrentRating</span> = <span style="color:#0000ff;">2</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">StarCssClass</span> = <span style="color:#0000ff;">&#8220;ratingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">WaitingStarCssClass</span> = <span style="color:#0000ff;">&#8220;savedRatingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">FilledStarCssClass</span> = <span style="color:#0000ff;">&#8220;filledRatingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">EmptyStarCssClass</span> = <span style="color:#0000ff;">&#8220;emptyRatingStar&#8221;</span>;<br />
    <span style="color:#008080;">}</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/script&gt;&lt;html</span> <span style="color:#ff0000;">xmlns=</span><span style="color:#0000ff;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;head</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;title&gt;&lt;/title&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;style </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/css&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="color:#008800;font-style:italic;">/* Rating */</span>.ratingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">font</span>-<span style="color:#ff0000;">size</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">pt</span>;<br />
            <span style="color:#ff0000;">width</span>: <span style="color:#0000ff;">13</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">height</span>: <span style="color:#0000ff;">12</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">margin</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">padding</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">cursor</span>: <span style="color:#ff0000;">pointer</span>;<br />
            <span style="color:#ff0000;">display</span>: <span style="color:#ff0000;">block</span>;<br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">repeat</span>: <span style="color:#ff0000;">no</span>-<span style="color:#ff0000;">repeat</span>;<br />
        <span style="color:#008080;">}</span><br />
        .filledRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">FilledStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
        .emptyRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">EmptyStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
        .savedRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">SavedStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/style&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/head&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;body&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;form</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;form1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;cc1:ToolkitScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ToolkitScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/cc1:ToolkitScriptManager&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/div&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;asp:Button</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Button1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;Button&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/form&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;p&gt;</span><br />
        &amp;nbsp;<span style="font-weight:bold;color:#000080;">&lt;/p&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/body&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/html&gt;</span></div>
</div>
<h2>Solution 2:</h2>
<p>we can use Hidden Field to save the state of Rating control:</p>
<p>Note: We need to set up the Rating control&#8217;s BehaviorID, in order to call the Rating&#8217;s js interface in JavaScript</p>
<div id="codee_html" style="background-color:#f9f7ed;">
<div class="source" style="font-family:Consolas,'Lucida Console','Courier New';background-color:#f9f7ed;"><span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Page Language=&#8221;C#&#8221; %&gt;<br />
<span style="color:#a61717;background-color:#e3d2d2;">&lt;</span>%@ Register Assembly=&#8221;AjaxControlToolkit&#8221; Namespace=&#8221;AjaxControlToolkit&#8221; TagPrefix=&#8221;cc1&#8243; %&gt;<br />
<span style="color:#008080;">&lt;!DOCTYPE html PUBLIC &#8220;-//W3C//DTD XHTML 1.0 Transitional//EN&#8221; &#8220;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&#8221;&gt;</span><span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span>void Page_Load(object sender, EventArgs e)<br />
    <span style="color:#008080;">{</span><br />
        <span style="color:#ff0000;">AjaxControlToolkit</span>.<span style="color:#ff0000;">Rating</span> <span style="color:#ff0000;">rt</span> = <span style="color:#ff0000;">new</span> <span style="color:#ff0000;">Rating</span>();<br />
        <span style="color:#ff0000;">Panel1</span>.<span style="color:#ff0000;">Controls</span>.<span style="color:#ff0000;">Add</span>(<span style="color:#ff0000;">rt</span>);<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">ID</span> = <span style="color:#0000ff;">&#8220;LikeRating&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">MaxRating</span> = <span style="color:#0000ff;">5</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">CurrentRating</span> = <span style="color:#0000ff;">2</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">StarCssClass</span> = <span style="color:#0000ff;">&#8220;ratingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">WaitingStarCssClass</span> = <span style="color:#0000ff;">&#8220;savedRatingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">FilledStarCssClass</span> = <span style="color:#0000ff;">&#8220;filledRatingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">EmptyStarCssClass</span> = <span style="color:#0000ff;">&#8220;emptyRatingStar&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">BehaviorID</span> = <span style="color:#0000ff;">&#8220;hichange&#8221;</span>;<br />
        <span style="color:#ff0000;">rt</span>.<span style="color:#ff0000;">CurrentRating</span> = <span style="color:#ff0000;">Convert</span>.<span style="color:#ff0000;">ToInt32</span>(<span style="color:#ff0000;">this</span>.<span style="color:#ff0000;">Hidden1</span>.<span style="color:#ff0000;">Value</span>);<br />
    <span style="color:#008080;">}</span><br />
   <br />
<span style="font-weight:bold;color:#000080;">&lt;/script&gt;&lt;html</span> <span style="color:#ff0000;">xmlns=</span><span style="color:#0000ff;">&#8220;http://www.w3.org/1999/xhtml&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;head</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;title&gt;&lt;/title&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;style </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/css&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
        <span style="color:#008800;font-style:italic;">/* Rating */</span>.ratingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">font</span>-<span style="color:#ff0000;">size</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">pt</span>;<br />
            <span style="color:#ff0000;">width</span>: <span style="color:#0000ff;">13</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">height</span>: <span style="color:#0000ff;">12</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">margin</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">padding</span>: <span style="color:#0000ff;">0</span><span style="color:#ff0000;">px</span>;<br />
            <span style="color:#ff0000;">cursor</span>: <span style="color:#ff0000;">pointer</span>;<br />
            <span style="color:#ff0000;">display</span>: <span style="color:#ff0000;">block</span>;<br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">repeat</span>: <span style="color:#ff0000;">no</span>-<span style="color:#ff0000;">repeat</span>;<br />
        <span style="color:#008080;">}</span><br />
        .filledRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">FilledStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
        .emptyRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">EmptyStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
        .savedRatingStar<br />
        <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">background</span>-<span style="color:#ff0000;">image</span>: <span style="color:#ff0000;">url</span>(<span style="color:#ff0000;">Images</span>/<span style="color:#ff0000;">SavedStar</span>.<span style="color:#ff0000;">png</span>);<br />
        <span style="color:#008080;">}</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/style&gt;</span><br />
   <br />
    <span style="font-weight:bold;color:#000080;">&lt;script </span><span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;text/javascript&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><span style="font-weight:bold;color:#000080;">function</span> save_rate() <span style="color:#008080;">{</span><br />
            <span style="color:#ff0000;">var</span> <span style="color:#ff0000;">state</span> = $find(<span style="color:#0000ff;">&#8220;hichange&#8221;</span>).<span style="color:#ff0000;">get_Rating</span>();<br />
            $get(<span style="color:#0000ff;">&#8220;Hidden1&#8243;</span>).<span style="color:#ff0000;">value</span> = <span style="color:#ff0000;">state</span>;<br />
            <span style="color:#ff0000;">alert</span>(<span style="color:#ff0000;">state</span>);<br />
        <span style="color:#008080;">}</span><br />
   <br />
    <span style="font-weight:bold;color:#000080;">&lt;/script&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/head&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;body&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;form</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;form1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;cc1:ToolkitScriptManager</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;ToolkitScriptManager1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/cc1:ToolkitScriptManager&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;asp:Panel</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Panel1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">onclick=</span><span style="color:#0000ff;">&#8220;save_rate();&#8221;</span><span style="font-weight:bold;color:#000080;">&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/asp:Panel&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;asp:Button</span> <span style="color:#ff0000;">ID=</span><span style="color:#0000ff;">&#8220;Button1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">Text=</span><span style="color:#0000ff;">&#8220;Button&#8221;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;input</span> <span style="color:#ff0000;">id=</span><span style="color:#0000ff;">&#8220;Hidden1&#8243;</span> <span style="color:#ff0000;">runat=</span><span style="color:#0000ff;">&#8220;server&#8221;</span> <span style="color:#ff0000;">type=</span><span style="color:#0000ff;">&#8220;hidden&#8221;</span> <span style="color:#ff0000;">value=</span><span style="color:#0000ff;">&#8220;1&#8243;</span> <span style="font-weight:bold;color:#000080;">/&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;p&gt;</span><br />
        &amp;nbsp;<span style="font-weight:bold;color:#000080;">&lt;/p&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/form&gt;</span><br />
    <span style="font-weight:bold;color:#000080;">&lt;/body&gt;</span><br />
<span style="font-weight:bold;color:#000080;">&lt;/html&gt;</span></div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lancezhang.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lancezhang.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lancezhang.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lancezhang.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lancezhang.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lancezhang.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lancezhang.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lancezhang.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lancezhang.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lancezhang.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lancezhang.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lancezhang.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lancezhang.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lancezhang.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lancezhang.wordpress.com&amp;blog=5359361&amp;post=32&amp;subd=lancezhang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lancezhang.wordpress.com/2008/11/10/create-rating-dynamically/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/bb57084041d54c86161eaf8bc5a847c1?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Lance Zhang</media:title>
		</media:content>

		<media:content url="http://lancezhang.files.wordpress.com/2008/11/rating.jpg" medium="image">
			<media:title type="html">rating</media:title>
		</media:content>
	</item>
	</channel>
</rss>
