﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-cyberhedgehog</title><link>http://www.cnblogs.com/cyberhedgehog/</link><description /><language>zh-cn</language><lastBuildDate>Mon, 08 Sep 2008 00:19:56 GMT</lastBuildDate><pubDate>Mon, 08 Sep 2008 00:19:56 GMT</pubDate><ttl>60</ttl><item><title>Sql Server 存储过程中的 变量作用域区间</title><link>http://www.cnblogs.com/cyberhedgehog/articles/1281021.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Mon, 01 Sep 2008 03:08:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1281021.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1281021.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1281021.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1281021.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1281021.html</trackback:ping><description><![CDATA[<p>Declare @PropItemIDs&nbsp; NVarchar(4000)</p>
<p>Set @PropItemIDs = '1,2,3'<br />
</p>
<p>Declare @SQL NVarchar(4000)</p>
&nbsp;&nbsp; &nbsp;Set @SQL = '<br />
<p>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Insert Into #Table_NeedBuyPropItem</p>
<p>&nbsp;&nbsp; select PropID ,Attack,Recovery,LightGest,Hedge,HitTarget,Damage,Endure,Renew,ProductTime</p>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;From TXBT_RT_Prop With(NoLock) <br />
<p>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Where PropID in ( ' +&nbsp; @PropItemIDs&nbsp; + ')'</p>
<p>&nbsp;Exec (@SQL)</p>
<p>&nbsp;</p>
<p>执行上面这段语句后,再 Select * From #Table_NeedBuyPropItem.你会发现找不到这个临时表.</p>
<p>&nbsp;</p>
<p>但是这样写:</p>
<p>&nbsp;</p>
<p>select Row_Number() Over(Order By PropID ASC) As RowNum ,PropID ,Attack,Recovery,LightGest,Hedge,HitTarget,Damage,Endure,Renew,ProductTime<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Into #Table_NeedBuyPropItem<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;From TXBT_RT_Prop With(NoLock)<br />
</p>
<p>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Where 1 = 2</p>
<p>&nbsp;</p>
<p>Declare @SQL NVarchar(4000)<br />
&nbsp;&nbsp; &nbsp;Set @SQL = '<br />
</p>
<p>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Insert Into #Table_NeedBuyPropItem</p>
<p>&nbsp;&nbsp;&nbsp; select PropID ,Attack,Recovery,LightGest,Hedge,HitTarget,Damage,Endure,Renew,ProductTime</p>
<p>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;From TXBT_RT_Prop With(NoLock) <br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;Where PropID in ( ' +&nbsp; @PropItemIDs&nbsp; + ')'<br />
</p>
<p>&nbsp;&nbsp; &nbsp;Exec (@SQL)</p>
<p>&nbsp;</p>
<p>再执行&nbsp; Select * From #Table_NeedBuyPropItem.你会发现OK了.</p>
<p>&nbsp;</p>
<p>具体原理就是....用一段语言代码来表示:</p>
<p>&nbsp;</p>
<p>刚开始的做法是： &nbsp; <br />
&nbsp; if &nbsp; (2==2) &nbsp; <br />
&nbsp; { &nbsp; <br />
&nbsp;  &nbsp;  &nbsp; int &nbsp; i; &nbsp; <br />
&nbsp;  &nbsp;  &nbsp; i=1 &nbsp; <br />
&nbsp; } &nbsp; <br />
</p>
<p>  &nbsp; print &nbsp; i; &nbsp;&nbsp; </p>
<p>改变后的做法是：</p>
<p>&nbsp;</p>
<p>  int &nbsp; i; &nbsp; <br />
&nbsp; if &nbsp; (2==2) &nbsp; <br />
&nbsp; { &nbsp; <br />
&nbsp;  &nbsp;  &nbsp; i=1; &nbsp; <br />
&nbsp; } &nbsp; <br />
&nbsp; print &nbsp; i; &nbsp; <br />
&nbsp; <br />
</p>
<p> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p> </p>
<p>
</p><img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1281021.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42135/" target="_blank">[新闻]美大学在网上建虚拟校园开门授课</a>]]></description></item><item><title>C# 中的 Volatile 关键字</title><link>http://www.cnblogs.com/cyberhedgehog/articles/1263535.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Fri, 08 Aug 2008 02:57:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1263535.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1263535.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1263535.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1263535.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1263535.html</trackback:ping><description><![CDATA[<p>Volatile&nbsp;字面的意思时易变的，不稳定的。在C#中也差不多可以这样理解。</p>
<p>编译器在优化代码时，可能会把经常用到的代码存在Cache里面，然后下一次调用就直接读取Cache而不是内存，这样就大大提高了效率。但是问题也随之而来了。</p>
<p>在多线程程序中，如果把一个变量放入Cache后，又有其他线程改变了变量的值，那么本线程是无法知道这个变化的。它可能会直接读Cache里的数据。但是很不幸，Cache里的数据已经过期了，读出来的是不合时宜的脏数据。这时就会出现bug。</p>
<p>用Volatile声明变量可以解决这个问题。用Volatile声明的变量就相当于告诉编译器，我不要把这个变量写Cache，因为这个变量是可能发生改变的。</p>
<img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1263535.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42134/" target="_blank">[新闻]JavaScript将成Silverlight的最大对手?</a>]]></description></item><item><title>临时表和表变量的区别 </title><link>http://www.cnblogs.com/cyberhedgehog/articles/1261677.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Wed, 06 Aug 2008 01:51:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1261677.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1261677.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1261677.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1261677.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1261677.html</trackback:ping><description><![CDATA[1 临时表可以支持事务级的回滚操作（undo)，但不支持前滚操作(redo)，表变量不支持事务级的回滚操作，只是支持语句级的回滚。<br />
2 临时表上的统计信息是健全而可靠的，但是表变量上的统计信息是不可靠的。<br />
3 临时表的编译阀值非常低，<span style="color: red">但是表变量的编译阀值更低。这个后朋友寻觅经过测试，表变量是不存在编译阀值的。<br />
</span>4 范围不同。临时表为会话级，表变量为变量级，在自己的代码声明区间内有效。<br />
5 表变量只能指定primary key做隐式的索引，但是临时表可以显式创建各种索引。<br />
6 在2000和2005的区别里，表变量和临时表的差异更加显著。<br />
7 表变量不支持修改自身的定义。<br />
8 修改表变量的语句中，不能使用并行的执行计划。<br />
<br />
在我的实际编程调优经验中，表变量一般只是应用于超小型表，比如100行以内，不然表变量极易引起重编译和未知的性能问题。<br />
不过具体的行数可以根据实际情况，使用临时表和表变量两种方案对比，哪个更快再来作出最切合实际的决定。<br />
<img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1261677.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42133/" target="_blank">[新闻]没有谷歌就活不下去的四个网站</a>]]></description></item><item><title>如何让DIV固定在页面的某个位置而不随着滚动条随意滚动 (转)</title><link>http://www.cnblogs.com/cyberhedgehog/articles/1259634.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Mon, 04 Aug 2008 02:11:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1259634.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1259634.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1259634.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1259634.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1259634.html</trackback:ping><description><![CDATA[<p>这里稍微总结一下，那就是利用JavaScript脚本，从浏览器中获取各个关于位置的参数，然后将其计算后，定位在窗体的右下角。可以承认，这个方法确实是比较自然的想法，也是很常见的方法，但是这样的方法有以下几个缺点：</p>
<div style="margin-left: 40px">1、使用了大量的计算，每次滚动，都少不了一大堆的运算。</div>
<div style="margin-left: 40px">2、使用了JavaScript脚本，脚本这东西受到浏览器的限制，即便没有限制，也同样因为网页的下载模式问题，可能因为脚本下载未完成或者下载失败而致使脚本无法正确运行。</div>
<div style="margin-left: 40px">3、条条大路通罗马，但是看看那方块，当快速滚动滚动条的时候，会发现那个可爱的方块抖动地厉害。这也难怪，那么多的计算谁能受得了？</div>
<p>那有没有比较&#8220;平静&#8221;高效的表示方式呢？比如是否有一种用CSS的方式呢？</p>
<p>首先，我们将目光投向了CSS规范，我想很多人和我一样很快就想到了<a href="http://www.w3school.com.cn/css/pr_class_position.asp">position<img class="snap_preview_icon" id="snap_com_shot_link_icon" style="border-right: 0px; padding-right: 0px; background-position: -943px 0px; border-top: 0px; display: inline; padding-left: 0px; font-weight: normal; min-height: 0px; left: auto; float: none; background-image: url(http://i.ixnp.com/images/v3.41/theme/purple/palette.gif); visibility: visible; padding-bottom: 0px; margin: 0px; vertical-align: top; border-left: 0px; width: 14px; line-height: normal; padding-top: 1px; border-bottom: 0px; background-repeat: no-repeat; font-style: normal; font-family: 'trebuchet ms', arial, helvetica, sans-serif; position: static; top: auto; height: 12px; background-color: transparent; text-decoration: none; maxheight: 2000px; maxwidth: 2000px; minwidth: 0px; cssfloat: none" src="http://i.ixnp.com/images/v3.41/t.gif"  alt="" /></a>属性，说到定位，我们很容易想到这个属性。这个属性一共有四个选项：static、relative、absolute、fixed（<a href="http://www.w3school.com.cn/css/pr_class_position.asp">详情请点击<img class="snap_preview_icon" id="snap_com_shot_link_icon" style="border-right: 0px; padding-right: 0px; background-position: -943px 0px; border-top: 0px; display: inline; padding-left: 0px; font-weight: normal; min-height: 0px; left: auto; float: none; background-image: url(http://i.ixnp.com/images/v3.41/theme/purple/palette.gif); visibility: visible; padding-bottom: 0px; margin: 0px; vertical-align: top; border-left: 0px; width: 14px; line-height: normal; padding-top: 1px; border-bottom: 0px; background-repeat: no-repeat; font-style: normal; font-family: 'trebuchet ms', arial, helvetica, sans-serif; position: static; top: auto; height: 12px; background-color: transparent; text-decoration: none; maxheight: 2000px; maxwidth: 2000px; minwidth: 0px; cssfloat: none" src="http://i.ixnp.com/images/v3.41/t.gif"  alt="" /></a>）。很高兴，我们在阅读了相关的注释后，我们大概能看到fixed是比较符合我们的需求的：</p>
<div class="cnblogs_code">
<p><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000"><strong>fixed:</strong></span></p>
<p><span style="color: #000000">位置被设置为&nbsp;fixed&nbsp;的元素，可定位于相对于浏览器窗口的指定坐标。此元素的位置可通过&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">left</span><span style="color: #800000">"</span><span style="color: #000000">、</span><span style="color: #800000">"</span><span style="color: #800000">top</span><span style="color: #800000">"</span><span style="color: #000000">、</span><span style="color: #800000">"</span><span style="color: #800000">right</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;以及</span><span style="color: #800000">"</span><span style="color: #800000">bottom</span><span style="color: #800000">"</span><span style="color: #000000">&nbsp;属性来规定。不论窗口滚动与否，元素都会留在那个位置。工作于&nbsp;IE7（strict&nbsp;模式）。</span></p>
</div>
<p>于是我们很快就有了以下的代码，不过很遗憾，IE中并不能通过严格的测试，但是FireFox中却可以通过测试！</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</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 />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">http://volnet.cnblogs.com</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">Only&nbsp;fit&nbsp;FireFox!&nbsp;&nbsp;:(</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">&lt;!--</span><span style="color: #008000">Some&nbsp;thing&nbsp;about&nbsp;the&nbsp;fixed&nbsp;style!</span><span style="color: #008000">--&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">style&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/css"</span><span style="color: #0000ff">&gt;</span><span style="color: #800000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.fixed_div</span><span style="color: #000000; background-color: #f5f5f5">{</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;position</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">fixed</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">200px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bottom</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">20px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">400px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">}</span><span style="color: #800000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">style</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: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="fixed_div"</span><span style="color: #ff0000">&nbsp;style</span><span style="color: #0000ff">="border:1px&nbsp;solid&nbsp;#200888;"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">content,&nbsp;I'm&nbsp;content</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">style</span><span style="color: #0000ff">="height:888px;"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">div</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: #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></div>
<p>不管上面上面说的IE7的strict模式，很显然，除了IE7，我们的挑战还有包括IE6在内的一大堆未知的因素。很显然，虽然这个方法通过了FireFox，但我们还是宣告失败了。</p>
<p>难道我们只能使用JavaScript让这一切继续&#8220;卡&#8221;下去么？（我指的是用JavaScript的时候效果很卡）</p>
<p>当然不行，我们的症结究竟在哪？我们该如何去解除它呢？带着这样的郁闷，我们需要开始新的探险。</p>
<p>HTML究竟是啥？</p>
<p>这个问题换在别的地方问，您可能要搬出一大堆的文档来告诉我HTML的定义，但这里我并不需要那么完整的答案。我们知道HTML是由一大堆的&lt;tag&gt;&lt;/tag&gt;组成的，而这一大堆的&lt;tag&gt;&lt;/tag&gt;组合在一起，它们的结构就像一棵树，是的，HTML的代码就是被解释为了一棵树被浏览器所认识。它有一个根，那就是&lt;html&gt;&lt;/html&gt;节（root），在根节点下常见的节点中，我们通常能见到&lt;head&gt;&lt;/head&gt;和&lt;body&gt;&lt;/body&gt;两个节点，它们之下又有&#8230;&#8230;</p>
<p>现在回顾一下我们的问题，我们的问题是我们滚动滚动条的时候我们希望其中的一个指定的div不会跟着滚动条滚动。</p>
<p>那么下面让我们来回答另一个问题，啥是滚动条？</p>
<p>滚动条，顾名思义，就是可以滚动的条（ScrollBar）（废话<img alt="" src="http://www.cnblogs.com/Emoticons/QQ/icon16.gif" />）。准确地说，滚动条通常是我们在页面的内容超过了浏览器显示框的范围的时候，为了能够让有限的空间展示无限的内容所作出的一个妥协的元素，使用它可以让我们查看当前页面内容之外部分的内容。</p>
<p>说到这里您估计都还很清楚，但既然我说滚动条也是一个元素，那么它是不是也在我们的HTML中呢？又或者它是浏览器的固有的一部分？</p>
<p>如果您觉得它是HTML中的一部分，那么您就对了，因为它是依附容器而存在的，而默认产生滚动条的容器是&lt;body&gt;&lt;/body&gt;或者&lt;html&gt;&lt;/html&gt;节，它并不是浏览器固有的一部分，浏览器只是默认完整展示了一整个html文档，并不知道它中间的内容究竟是否需要滚动条的支持。</p>
<p>那么让我们回顾上面的那几行代码吧，假设fixed对您当前（失败）的浏览器无效的话，那么我们来看看它们的结构，外面是html标签，向内是body标签，再向内则是div标签，div标签很明显是它们的一部分，这样假设我们的div标签所设置的定位属性无论如何（四个可能的属性皆没起到什么作用）改变不了自身显示状况。我们能否更换一个思路呢？</p>
<p>刚才我说了，滚动条是容器所固有的，不管是外面那个滚动条，还是里面那个滚动条。那么我能否让这个需要固定的div和那个body或者html容器脱离关系呢？</p>
<p>看到滚动条的控制可以通过CSS的<a href="http://www.w3school.com.cn/css/pr_pos_overflow.asp">overflow<img class="snap_preview_icon" id="snap_com_shot_link_icon" style="border-right: 0px; padding-right: 0px; background-position: -943px 0px; border-top: 0px; display: inline; padding-left: 0px; font-weight: normal; min-height: 0px; left: auto; float: none; background-image: url(http://i.ixnp.com/images/v3.41/theme/purple/palette.gif); visibility: visible; padding-bottom: 0px; margin: 0px; vertical-align: top; border-left: 0px; width: 14px; line-height: normal; padding-top: 1px; border-bottom: 0px; background-repeat: no-repeat; font-style: normal; font-family: 'trebuchet ms', arial, helvetica, sans-serif; position: static; top: auto; height: 12px; background-color: transparent; text-decoration: none; maxheight: 2000px; maxwidth: 2000px; minwidth: 0px; cssfloat: none" src="http://i.ixnp.com/images/v3.41/t.gif"  alt="" /></a>的几个属性来控制，想必大家都不陌生了。（陌生的朋友点击相关链接即可进入查看）</p>
<p>那么我是否可以自己设置两个完全隔离的div来模拟这种场景呢？（虽说是模拟，但是效果一模一样噢～）</p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</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 />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">title</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">style&nbsp;</span><span style="color: #ff0000">type</span><span style="color: #0000ff">="text/css"</span><span style="color: #0000ff">&gt;</span><span style="color: #800000; background-color: #f5f5f5"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;html,body&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">{</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;overflow</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">hidden</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;margin</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">0px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">100%</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">100%</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">}</span><span style="color: #800000; background-color: #f5f5f5"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.virtual_body&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">{</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">100%</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">100%</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;overflow-y</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">scroll</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;overflow-x</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">auto</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">}</span><span style="color: #800000; background-color: #f5f5f5"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.fixed_div&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">{</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;position</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">absolute</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;z-index</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">2008</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bottom</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">20px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">40px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;width</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">800px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;height</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">40px</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;border</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">1px&nbsp;solid&nbsp;red</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;background</span><span style="color: #000000; background-color: #f5f5f5">:</span><span style="color: #0000ff; background-color: #f5f5f5">#e5e5e5</span><span style="color: #000000; background-color: #f5f5f5">;</span><span style="color: #ff0000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000; background-color: #f5f5f5">}</span><span style="color: #800000; background-color: #f5f5f5"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">style</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 />
<br />
</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">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="fixed_div"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">I&nbsp;am&nbsp;still&nbsp;here!</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">class</span><span style="color: #0000ff">="virtual_body"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;</span><span style="color: #800000">div&nbsp;</span><span style="color: #ff0000">style</span><span style="color: #0000ff">="height:888px;"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;I&nbsp;am&nbsp;content&nbsp;!<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</span><span style="color: #0000ff">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">div</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: #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></div>
<p>分析：</p>
<p>html,body：将默认可能会随机出现的滚动条，完全地隐藏了，这样不管您放了啥内容，它们都不会出来了。</p>
<p>.virtual_body：顾名思义，就是一个假的body了，它被设置为长宽都为100%的，意思就是它利用了所有可视的浏览器窗体显示所有的内容，并垂直允许出现滚动条。</p>
<p>.fixed_div：这下它可以利用绝对值进行定位了，因为在这个场景下，这个页面100%地被那个假冒的body给独霸了，而滚动条反正也出不来，您就可以自认为是在某个点蹲坑了，绝对安全。</p>
<p>想必您通过这些代码已经了解了新的方法不过是将一个div换作了之前的body。</p>
<p>通过这篇文章，希望您能解决这个问题，更深入一点，希望您能够对HTML的具体内容有更深刻地理解，同时预祝北京奥运会顺利开幕，也祝愿所有运动员都能取得好成绩。</p>
<img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1259634.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42132/" target="_blank">[新闻]Google 10周岁生日</a>]]></description></item><item><title>ff 与ie 事件处理（转载）</title><link>http://www.cnblogs.com/cyberhedgehog/articles/1251179.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Fri, 25 Jul 2008 04:04:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1251179.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1251179.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1251179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1251179.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1251179.html</trackback:ping><description><![CDATA[<div class="cnt">
<ol>
    <li>在ie中，事件对象是作为一个全局变量来保存和维护的。 所有的浏览器事件,不管是用户触发<br />
    的，还是其他事件， 都会更新window.event 对象。 所以在代码中，只要轻松调用 window.event<br />
    就可以轻松获取 事件对象， 再 event.srcElement 就可以取得触发事件的元素进行进一步处理</li>
    <li>在ff中， 事件对象却不是全局对象，一般情况下，是现场发生，现场使用，ff把事件对象自动传<br />
    递给对应的事件处理函数。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在代码中，函数的第一个参数就是ff下的事件对象了。 </li>
</ol>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp; 以上是我个人对两个浏览器下的事件处理方法的粗浅理解，可能说得不是很明白，我写些代码来<br />
&nbsp;&nbsp;&nbsp;&nbsp; 详细说明一下<br />
&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span> <span style="color: #000000">&lt;</span><span style="color: #000000">button id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btn1</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">按钮1</span><span style="color: #000000"><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span> <span style="color: #000000">&lt;</span><span style="color: #000000">button id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btn2</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">按钮2</span><span style="color: #000000"><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">3</span> <span style="color: #000000">&lt;</span><span style="color: #000000">button id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btn3</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">按钮3</span><span style="color: #000000"><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span> <span style="color: #000000"><br />
</span><span style="color: #008080">5</span> <span style="color: #000000">&lt;</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">6</span> <span style="color: #000000"><br />
</span><span style="color: #008080">7</span> <span style="color: #000000">window.onload</span><span style="color: #000000">=</span><span style="color: #0000ff">function</span><span style="color: #000000">(){<br />
</span><span style="color: #008080">8</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">btn1</span><span style="color: #000000">"</span><span style="color: #000000">).onclick</span><span style="color: #000000">=</span><span style="color: #000000">foo1<br />
</span><span style="color: #008080">9</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">btn2</span><span style="color: #000000">"</span><span style="color: #000000">).onclick</span><span style="color: #000000">=</span><span style="color: #000000">foo2<br />
</span><span style="color: #008080">10</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">btn3</span><span style="color: #000000">"</span><span style="color: #000000">).onclick</span><span style="color: #000000">=</span><span style="color: #000000">foo3<br />
</span><span style="color: #008080">11</span> <span style="color: #000000">}<br />
</span><span style="color: #008080">12</span> <span style="color: #000000"><br />
</span><span style="color: #008080">13</span> <span style="color: #0000ff">function</span><span style="color: #000000"> foo1(){<br />
</span><span style="color: #008080">14</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">ie中， window.event使全局对象</span><span style="color: #008000"><br />
</span><span style="color: #008080">15</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; alert(window.event)&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000"> ie下，显示 "[object]" ,&nbsp;&nbsp; ff下显示 "undefined"</span><span style="color: #008000"><br />
</span><span style="color: #008080">16</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">17</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">ff中，&nbsp;&nbsp; 第一个参数自动从为 事件对象 </span><span style="color: #008000"><br />
</span><span style="color: #008080">18</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; alert(arguments[</span><span style="color: #000000">0</span><span style="color: #000000">])&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000"> ie下，显示&nbsp;&nbsp; "undefined",&nbsp;&nbsp; ff下显示 "[object]"</span><span style="color: #008000"><br />
</span><span style="color: #008080">19</span> <span style="color: #000000">}<br />
</span><span style="color: #008080">20</span> <span style="color: #000000"><br />
</span><span style="color: #008080">21</span> <span style="color: #0000ff">function</span><span style="color: #000000"> foo2(e){<br />
</span><span style="color: #008080">22</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; alert(window.event)&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000"> ie下，显示 "[object]" ,&nbsp;&nbsp; ff下显示 "undefined"</span><span style="color: #008000"><br />
</span><span style="color: #008080">23</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">24</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">注意，我从来没有给&nbsp;&nbsp; foo2传过参数哦。&nbsp;&nbsp; 现在 ff自动传参数给 foo2, 传的参数e 就是事件对象了</span><span style="color: #008000"><br />
</span><span style="color: #008080">25</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; alert(e)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000"> ie下，显示&nbsp;&nbsp; "undefined",&nbsp;&nbsp; ff下显示 "[object]"</span><span style="color: #008000"><br />
</span><span style="color: #008080">26</span> <span style="color: #000000">}<br />
</span><span style="color: #008080">27</span> <span style="color: #000000"><br />
</span><span style="color: #008080">28</span> <span style="color: #0000ff">function</span><span style="color: #000000"> foo3(){&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">同时兼容ie和ff的写法,取事件对象 </span><span style="color: #008000"><br />
</span><span style="color: #008080">29</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; alert(arguments[</span><span style="color: #000000">0</span><span style="color: #000000">] </span><span style="color: #000000">||</span><span style="color: #000000"> window.event)&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000"> ie 和 ff下，都显示 "[object]"</span><span style="color: #008000"><br />
</span><span style="color: #008080">30</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000"> evt</span><span style="color: #000000">=</span><span style="color: #000000">arguments[</span><span style="color: #000000">0</span><span style="color: #000000">] </span><span style="color: #000000">||</span><span style="color: #000000"> window.event<br />
</span><span style="color: #008080">31</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000"> element</span><span style="color: #000000">=</span><span style="color: #000000">evt.srcElement </span><span style="color: #000000">||</span><span style="color: #000000"> evt.target&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">在 ie和ff下&nbsp;&nbsp; 取得 btn3对象</span><span style="color: #008000"><br />
</span><span style="color: #008080">32</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; alert(element.id)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp; btn3</span><span style="color: #008000"><br />
</span><span style="color: #008080">33</span> <span style="color: #000000">}<br />
</span><span style="color: #008080">34</span> <span style="color: #000000"><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">35</span> </span></span></span></span></div>
<p>看到这里，我们似乎对 ie和ff的事件处理方式都已经理解了，并找到了解决的办法。<br />
<br />
但是。。。。事情还没有结束。<br />
<br />
看代码</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;</span><span style="color: #000000">button id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btn</span><span style="color: #000000">"</span><span style="color: #000000"> onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">foo()</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">按钮1</span><span style="color: #000000"><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">function</span><span style="color: #000000"> foo(){&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp; alert(arguments[</span><span style="color: #000000">0</span><span style="color: #000000">] </span><span style="color: #000000">||</span><span style="color: #000000"> window.event) <br />
}<br />
</span><span style="color: #000000"><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></span></span></div>
<p><br />
很不幸，我们 foo给我们的结果是&nbsp;&nbsp; undefined, 而不是期望的 object<br />
<br />
<span style="color: red">原因在于 事件绑定的方式</span><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onclick="foo()"&nbsp;&nbsp;&nbsp; 就是直接执行了， foo() 函数,没有任何参数的，<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 这种情况下 firefox没有机会传递任何参数给foo<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #3366ff">而 btn.onclick=foo&nbsp;&nbsp;&nbsp; 这种情况， 因为不是直接执行函数，firefox才有机会传参数给foo</span></p>
<p></p>
<p>解决方法：<br />
</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 方法一：比较笨的方法，既然 firefox没有机会传参数，那么自己勤快点，自己传</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #000000">&lt;</span><span style="color: #000000">button id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btn</span><span style="color: #000000">"</span><span style="color: #000000"> onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">foo(event)</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">按钮</span><span style="color: #000000"><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
<br />
<br />
</span><span style="color: #000000">&lt;</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">function</span><span style="color: #000000"> foo(){&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; alert(arguments[</span><span style="color: #000000">0</span><span style="color: #000000">] </span><span style="color: #000000">||</span><span style="color: #000000"> window.event)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000"> evt</span><span style="color: #000000">=</span><span style="color: #000000">arguments[</span><span style="color: #000000">0</span><span style="color: #000000">] </span><span style="color: #000000">||</span><span style="color: #000000"> window.event<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000"> element</span><span style="color: #000000">=</span><span style="color: #000000">evt.srcElement </span><span style="color: #000000">||</span><span style="color: #000000"> evt.target&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; alert(element.id)&nbsp;&nbsp;&nbsp;<br />
}<br />
</span><span style="color: #000000"><span style="color: #000000">script</span><span style="color: #000000">&gt;</span></span></span></div>
<p>&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; 方法二： 自动查找<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span> <span style="color: #000000">&lt;</span><span style="color: #000000">button id</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">btn4</span><span style="color: #000000">"</span><span style="color: #000000"> onclick</span><span style="color: #000000">=</span><span style="color: #000000">"</span><span style="color: #000000">foo4()</span><span style="color: #000000">"</span><span style="color: #000000">&gt;</span><span style="color: #000000">按钮4</span><span style="color: #000000"><span style="color: #000000">button</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">2</span> <span style="color: #000000"><br />
</span><span style="color: #008080">3</span> <span style="color: #000000">&lt;</span><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">4</span> <span style="color: #000000"><br />
</span><span style="color: #008080">5</span> <span style="color: #0000ff">function</span><span style="color: #000000"> foo4(){&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">6</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000"> evt</span><span style="color: #000000">=</span><span style="color: #000000">getEvent()<br />
</span><span style="color: #008080">7</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000"> element</span><span style="color: #000000">=</span><span style="color: #000000">evt.srcElement </span><span style="color: #000000">||</span><span style="color: #000000"> evt.target&nbsp;&nbsp;<br />
</span><span style="color: #008080">8</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp; alert(element.id)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">9</span> <span style="color: #000000">}<br />
</span><span style="color: #008080">10</span> <span style="color: #000000"><br />
</span><span style="color: #008080">11</span> <span style="color: #0000ff">function</span><span style="color: #000000"> getEvent(){&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">同时兼容ie和ff的写法</span><span style="color: #008000"><br />
</span><span style="color: #008080">12</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(document.all)&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> window.event;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">13</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; func</span><span style="color: #000000">=</span><span style="color: #000000">getEvent.caller;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">14</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(func</span><span style="color: #000000">!=</span><span style="color: #0000ff">null</span><span style="color: #000000">){&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">15</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000"> arg0</span><span style="color: #000000">=</span><span style="color: #000000">func.arguments[</span><span style="color: #000000">0</span><span style="color: #000000">];<br />
</span><span style="color: #008080">16</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(arg0){<br />
</span><span style="color: #008080">17</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">((arg0.constructor</span><span style="color: #000000">==</span><span style="color: #000000">Event </span><span style="color: #000000">||</span><span style="color: #000000"> arg0.constructor </span><span style="color: #000000">==</span><span style="color: #000000">MouseEvent)<br />
</span><span style="color: #008080">18</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000"> (</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(arg0)</span><span style="color: #000000">==</span><span style="color: #000000">"</span><span style="color: #000000">object</span><span style="color: #000000">"</span><span style="color: #000000"> </span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000"> arg0.preventDefault </span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000"> arg0.stopPropagation)){&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">19</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> arg0;<br />
</span><span style="color: #008080">20</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
</span><span style="color: #008080">21</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
</span><span style="color: #008080">22</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; func</span><span style="color: #000000">=</span><span style="color: #000000">func.caller;<br />
</span><span style="color: #008080">23</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
</span><span style="color: #008080">24</span> <span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
</span><span style="color: #008080">25</span> <span style="color: #000000">}<br />
</span><span style="color: #008080">26</span> <span style="color: #000000"><span style="color: #000000">script</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br />
</span><span style="color: #008080">27</span> </span></span></div>
<p>方法二由&nbsp;&nbsp; lostinet原创，我在其基础上有所改进，&nbsp;&nbsp; 原函数如下<br />
</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">1</span><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" _counted="undefined" /><span style="color: #0000ff">function</span><span style="color: #000000"> SearchEvent()<br />
</span><span style="color: #008080">2</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" _counted="undefined" /><img style="display: none" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" _counted="undefined" /></span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" _counted="undefined" /></span><span style="color: #000000">{<br />
</span><span style="color: #008080">3</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">IE</span><span style="color: #008000"><br />
</span><span style="color: #008080">4</span><span style="color: #008000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(document.all)<br />
</span><span style="color: #008080">5</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> window.event;<br />
</span><span style="color: #008080">6</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">7</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp; func</span><span style="color: #000000">=</span><span style="color: #000000">SearchEvent.caller;<br />
</span><span style="color: #008080">8</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">(func</span><span style="color: #000000">!=</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
</span><span style="color: #008080">9</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" _counted="undefined" /><img style="display: none" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" _counted="undefined" /></span><span style="color: #000000">{<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000"> arg0</span><span style="color: #000000">=</span><span style="color: #000000">func.arguments[</span><span style="color: #000000">0</span><span style="color: #000000">];<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(arg0)<br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" _counted="undefined" /><img style="display: none" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" _counted="undefined" /></span><span style="color: #000000">{<br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(arg0.constructor</span><span style="color: #000000">==</span><span style="color: #000000">Event)<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> arg0;<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span><span style="color: #000000"><br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; func</span><span style="color: #000000">=</span><span style="color: #000000">func.caller;<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp; }</span><span style="color: #000000"><br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" _counted="undefined" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000"> </span><span style="color: #0000ff">null</span><span style="color: #000000">;<br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" _counted="undefined" />}</span></div>
<p><br />
<br />
简单总结：<br />
&nbsp;&nbsp;&nbsp;&nbsp; 以上两个解决方法中，都正确处理&nbsp;&nbsp; ff和ie下&nbsp;&nbsp;&nbsp; 的事件处理 （不管是onclick="foo()",方式还是&nbsp;&nbsp; onclick=foo方式）<br />
但是个人建议用&nbsp;&nbsp; getEvent() 方法来统一处理 事件问题</p>
</div>
<img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1251179.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42131/" target="_blank">[新闻]祝Google 10周岁生日快乐</a>]]></description></item><item><title>asp.net动态注册javascript总结(转贴) </title><link>http://www.cnblogs.com/cyberhedgehog/articles/1234631.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Thu, 03 Jul 2008 03:36:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1234631.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1234631.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1234631.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1234631.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1234631.html</trackback:ping><description><![CDATA[<p><font face="Verdana"><em><u style="font-size: 14pt">一.使用RegisterStartUpScript注册只执行一次的javascript</u></em><br />
<strong>第1步(创建并注册并使用javascript)：Page.aspx.cs<br />
</strong>protected void Page_Load(object sender, EventArgs e)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; //创建JavaScript<br />
&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red">string info = "&lt;script&gt;alert('你好，我是农国苏！')&lt;/script&gt;";</span></font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp; //判断Welcome是否已被注册<br />
&nbsp;&nbsp;&nbsp;&nbsp; if (!Page.ClientScript.IsStartupScriptRegistered("Welcome"))<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //动态注册并执行JavaScript<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red">Page.ClientScript.RegisterStartupScript(this.GetType(), "Welcome", info);</span><br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
<em><u style="font-size: 14pt">二.使用RegisterClientScriptBlock注册javascript<br />
</u></em><strong>第1步(创建并注册javascript)：Page.aspx.cs<br />
</strong>protected void Page_Load(object sender, EventArgs e)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; //创建JavaScript<br />
&nbsp;&nbsp;&nbsp;&nbsp; string info="";<br />
&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red">info += "function showName(username)";<br />
&nbsp;&nbsp;&nbsp;&nbsp; info += "{ alert('您的名字是：'+ username); }";&nbsp;&nbsp;</span><br />
&nbsp;&nbsp;&nbsp; //判断myName是否已被注册<br />
&nbsp;&nbsp;&nbsp; if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), "myName"))<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; //动态注册JavaScript<br />
&nbsp;&nbsp;&nbsp; <span style="color: red">Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "myName", info,true);</span><br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;}<br />
<strong>第2步(调用javascript)：Page.aspx</strong><br />
&lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 姓名：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id="txtUserName" type="text" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id="btnSubmit" type="button" value="确定" <span style="color: red">onclick="showName(txtUserName.value)" </span>/&gt;<br />
&nbsp;&lt;/div&gt;<br />
<em><u style="font-size: 14pt">三.使用RegisterClientScriptInclude注册javascript<br />
</u></em><strong>第1步(创建javascript)：Script/Info.js</strong><br />
<span style="color: red">function showName(username)<br />
</span>{<br />
&nbsp;&nbsp;&nbsp; alert('您的姓名是：'+username);<br />
}<br />
<strong>第2步(调用javascript)：Page.aspx<br />
</strong>&lt;div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 姓名：&lt;input <span style="color: red">id="txtUserName"</span> type="text" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input id="btnSubmit" type="button" value="确定" <span style="color: red">onclick="showName(txtUserName.value)" </span>/&gt;<br />
&lt;/div&gt;<br />
<strong>第3步(注册javascript)：Page.aspx.cs<br />
</strong>protected void Page_Load(object sender, EventArgs e)<br />
{<br />
&nbsp;&nbsp;&nbsp; //判断是否已被注册<br />
&nbsp;&nbsp;&nbsp; if (!ClientScript.IsClientScriptIncludeRegistered(this.GetType(), "myMessage"))<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp; //动态注册JavaScript<br />
&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: red">Page.ClientScript.RegisterClientScriptInclude("myMessage", "Script/Info.js");</span><br />
&nbsp;&nbsp;&nbsp; }<br />
}</font></p>
<img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1234631.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42130/" target="_blank">[新闻]Google十年市值达1500亿美元 创造奇迹</a>]]></description></item><item><title>SQL SERVER 2005也来try catch和throw</title><link>http://www.cnblogs.com/cyberhedgehog/articles/1215210.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Fri, 06 Jun 2008 08:04:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1215210.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1215210.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1215210.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1215210.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1215210.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">ALTER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PROCEDURE</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">dbo</span><span style="color: #ff0000">]</span><span style="color: #000000">.</span><span style="color: #ff0000">[</span><span style="color: #ff0000">test</span><span style="color: #ff0000">]</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@from</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">50</span><span style="color: #000000">),<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@to</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">50</span><span style="color: #000000">),<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@num</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">AS</span><span style="color: #000000"><br />
<br />
</span><span style="color: #0000ff">BEGIN</span><span style="color: #000000">&nbsp;TRY<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">BEGIN</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TRAN</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;vc&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;balance&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;balance&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@num</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">name</span><span style="color: #ff0000">]</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@from</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;vc&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;balance&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;balance&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@num</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">name</span><span style="color: #ff0000">]</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@to</span><span style="color: #000000">;<br />
</span><span style="color: #0000ff">COMMIT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TRAN</span><span style="color: #000000">;<br />
</span><span style="color: #0000ff">END</span><span style="color: #000000">&nbsp;TRY<br />
</span><span style="color: #0000ff">BEGIN</span><span style="color: #000000">&nbsp;CATCH<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">ROLLBACK</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TRAN</span><span style="color: #000000"><br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">EXEC</span><span style="color: #000000">&nbsp;PE_THROW;<br />
</span><span style="color: #0000ff">END</span><span style="color: #000000">&nbsp;CATCH<br />
</span></div>
<br />
自定义的pe_throw存储过程如下：<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;ANSI_NULLS&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;QUOTED_IDENTIFIER&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">GO</span><span style="color: #000000"><br />
</span><span style="color: #008080">/*</span><span style="color: #008080">****************************************************************<br />
--&nbsp;过程名:PE_THROW<br />
--&nbsp;输&nbsp;&nbsp;入:&nbsp;<br />
--&nbsp;输&nbsp;&nbsp;出:&nbsp;<br />
--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;抛出异常<br />
--&nbsp;功能描述:&nbsp;接收调用程序的异常并抛给上一级程序．&nbsp;注意每个数据库都应包含该过程．<br />
--&nbsp;调用模块:&nbsp;所有包含事务控制的过程<br />
--&nbsp;操作表&nbsp;&nbsp;<br />
--&nbsp;作&nbsp;&nbsp;者:&nbsp;<br />
--&nbsp;日&nbsp;&nbsp;期:&nbsp;2007-01-30<br />
--&nbsp;修&nbsp;&nbsp;改:<br />
--&nbsp;日&nbsp;&nbsp;期:<br />
--&nbsp;版本<br />
***************************************************************</span><span style="color: #008080">*/</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">ALTER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PROCEDURE</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">dbo</span><span style="color: #ff0000">]</span><span style="color: #000000">.</span><span style="color: #ff0000">[</span><span style="color: #ff0000">PE_THROW</span><span style="color: #ff0000">]</span><span style="color: #000000"><br />
<br />
</span><span style="color: #0000ff">AS</span><span style="color: #000000"><br />
<br />
</span><span style="color: #0000ff">BEGIN</span><span style="color: #000000"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SET</span><span style="color: #000000">&nbsp;NOCOUNT&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">DECLARE</span><span style="color: #000000">&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorMessage</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #000000">NVARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">4000</span><span style="color: #000000">),<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorNumber</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #000000">INT</span><span style="color: #000000">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorSeverity</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #000000">INT</span><span style="color: #000000">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorState</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #000000">INT</span><span style="color: #000000">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorLine</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #000000">INT</span><span style="color: #000000">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorProcedure</span><span style="color: #000000">&nbsp;&nbsp;</span><span style="font-weight: bold; color: #000000">NVARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">200</span><span style="color: #000000">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorNumber</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;ERROR_NUMBER(),<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorSeverity</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;ERROR_SEVERITY(),<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorState</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;ERROR_STATE(),<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorLine</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;ERROR_LINE(),<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorProcedure</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">ISNULL</span><span style="color: #000000">(ERROR_PROCEDURE(),&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">-</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@ErrorMessage</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;N</span><span style="color: #ff0000">'</span><span style="color: #ff0000">Error&nbsp;%d,&nbsp;Level&nbsp;%d,&nbsp;State&nbsp;%d,&nbsp;Procedure&nbsp;%s,&nbsp;Line&nbsp;%d,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">Message:&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;ERROR_MESSAGE();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">RAISERROR</span><span style="color: #000000">&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorMessage</span><span style="color: #000000">,&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorSeverity</span><span style="color: #000000">,&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorNumber</span><span style="color: #000000">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorSeverity</span><span style="color: #000000">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorState</span><span style="color: #000000">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorProcedure</span><span style="color: #000000">,<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">@ErrorLine</span><span style="color: #000000"><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />
<br />
</span><span style="color: #0000ff">END</span><span style="color: #000000"><br />
</span></div>
<img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1215210.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42129/" target="_blank">[新闻]GMail:回过头来支持IE6</a>]]></description></item><item><title>用户控件动态加载PostBack后的问题 LoadControl()</title><link>http://www.cnblogs.com/cyberhedgehog/articles/1210709.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Fri, 30 May 2008 06:31:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1210709.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1210709.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1210709.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1210709.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1210709.html</trackback:ping><description><![CDATA[<p><font face="Courier New" size="2">很多网友在按钮的click事件中动态添加用户控件在页面回传后消失了或者就是用户控件中的按钮事件不能触发，下面是解决办法： <br />
（1） <br />
首先添加一个用户控件：WebUserControl1.ascx <br />
添加一个按钮：public System.Web.UI.WebControls.Button ucb;Text为"用户控件的按钮"(等会要在Page中用到这个按钮，所以设置为public) <br />
&lt;asp:Button id="ucb" Text="用户控件的按钮" runat="server"&gt;&lt;/asp:Button&gt; <br />
为按钮的click事件添加代码： <br />
Response.Write(i.ToString()); <br />
i++; <br />
在类中申明static int i=0; <br />
这样通过点击按钮可以看到点击一次，计数增加1 <br />
（2） <br />
添加一个页面 <br />
放置一个PlaceHolder，两个按钮 <br />
&lt;asp:PlaceHolder id="PlaceHolder1" runat="server"&gt;&lt;/asp:PlaceHolder&gt; <br />
&lt;asp:Button id="Button1" runat="server"&nbsp;Text="加载用户控件"&gt;&lt;/asp:Button&gt; <br />
&lt;asp:Button id="Button2" runat="server"&nbsp;Text="获取用户控件中的值"&gt;&lt;/asp:Button&gt; <br />
添加一个加载用户控件的操作： <br />
private void adduc() <br />
&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;WebUserControl1 uc=(WebUserControl1)Page.LoadControl("WebUserControl1.ascx"); <br />
&nbsp;&nbsp;&nbsp;uc.ID="uc"; <br />
&nbsp;&nbsp;&nbsp;this.PlaceHolder1.Controls.Add(uc); <br />
&nbsp;&nbsp;} <br />
为第一个按钮增加click事件： <br />
&nbsp;private void Button1_Click(object sender, System.EventArgs e) <br />
&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;if(ViewState["adduc"]==null) <br />
&nbsp;&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;adduc(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;ViewState["adduc"]=1; <br />
&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;} <br />
我们在视图状态中增加一个标志位，表示是否点击了按钮来加载用户控件，当然如果已经加载了再点击按钮就不需要重复加载了。 <br />
关键的是需要在Page.IsPostBack的时候也要加载用户控件 <br />
（因为如果不这么做的话，回传的时候用户控件就消失了） <br />
if(Page.IsPostBack) <br />
&nbsp;&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;if(ViewState["adduc"]!=null) <br />
&nbsp;&nbsp;&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;adduc(); <br />
&nbsp;&nbsp;&nbsp;&nbsp;} <br />
&nbsp;&nbsp;&nbsp;} <br />
下面可以点击Button1试验一下，是不是加载了用户控件？同时再点击用户控件中的按钮也能很好的触发其事件。 <br />
再为Button2添加click事件，用来读取用户控件中btn这个按钮的标题，动态加载的用户控件和设计时加载的用户控件一样也能很好的和页面进行交互： <br />
private void Button2_Click(object sender, System.EventArgs e) <br />
&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;if(ViewState["adduc"]!=null) <br />
&nbsp;&nbsp;&nbsp;{ <br />
&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(((WebUserControl1)Page.FindControl("uc")).ucb.Text); <br />
&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;} <br />
这里注意到在加载用户控件的时候我们为之指定了id，能够方便的通过FindControl来找到</font> </p>
<img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1210709.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42128/" target="_blank">[新闻]Google十年大变样</a>]]></description></item><item><title>SQL语句优化技术分析 </title><link>http://www.cnblogs.com/cyberhedgehog/articles/1201355.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Sat, 17 May 2008 05:22:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1201355.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1201355.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1201355.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1201355.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1201355.html</trackback:ping><description><![CDATA[<p>最近几周一直在进行数据库培训，老师精湛的技术和生动的讲解使我受益匪浅。为了让更多的新手受益，我抽空把SQL语句优化部分进行了整理，希望大家一起进步。</p>
<p><strong>一、操作符优化</strong></p>
<p><strong>1、IN 操作符</strong>
<p>用IN写出来的SQL的优点是比较容易写及清晰易懂，这比较适合现代软件开发的风格。但是用IN的SQL性能总是比较低的，从Oracle执行的步骤来分析用IN的SQL与不用IN的SQL有以下区别：</p>
<p>ORACLE试图将其转换成多个表的连接，如果转换不成功则先执行IN里面的子查询，再查询外层的表记录，如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的SQL至少多了一个转换的过程。一般的SQL都可以转换成功，但对于含有分组统计等方面的SQL就不能转换了。</p>
<p><strong>推荐方案：</strong>在业务密集的SQL当中尽量不采用IN操作符，用EXISTS 方案代替。</p>
<p><strong>2、NOT IN操作符</strong>
<p>此操作是强列不推荐使用的，因为它不能应用表的索引。
<p><strong>推荐方案：</strong>用NOT EXISTS 方案代替
<p><strong>3、IS NULL 或IS NOT NULL操作</strong>（判断字段是否为空）
<p>判断字段是否为空一般是不会应用索引的，因为索引是不索引空值的。<br />
<p><strong>推荐方案</strong>：用其它相同功能的操作运算代替，如：a is not null 改为 a&gt;0 或a&gt;&#8217;&#8217;等。不允许字段为空，而用一个缺省值代替空值，如申请中状态字段不允许为空，缺省为申请。
<p><strong>4、&gt; 及 &lt; 操作符（大于或小于操作符）</strong>
<p>大于或小于操作符一般情况下是不用调整的，因为它有索引就会采用索引查找，但有的情况下可以对它进行优化，如一个表有100万记录，一个数值型字段A，30万记录的A=0，30万记录的A=1，39万记录的A=2，1万记录的A=3。那么执行A&gt;2与A&gt;=3的效果就有很大的区别了，因为A&gt;2时ORACLE会先找出为2的记录索引再进行比较，而A&gt;=3时ORACLE则直接找到=3的记录索引。
<p><strong>5、LIKE操作符</strong>
<p>LIKE操作符可以应用通配符查询，里面的通配符组合可能达到几乎是任意的查询，但是如果用得不好则会产生性能上的问题，如LIKE &#8216;%5400%&#8217; 这种查询不会引用索引，而LIKE &#8216;X5400%&#8217;则会引用范围索引。
<p>一个实际例子：用YW_YHJBQK表中营业编号后面的户标识号可来查询营业编号 YY_BH LIKE &#8216;%5400%&#8217; 这个条件会产生全表扫描，如果改成YY_BH LIKE &#8217;X5400%&#8217; OR YY_BH LIKE &#8217;B5400%&#8217; 则会利用YY_BH的索引进行两个范围的查询，性能肯定大大提高。
<p><strong>6、UNION操作符</strong>
<p>UNION在进行表链接后会筛选掉重复的记录，所以在表链接后会对所产生的结果集进行排序运算，删除重复的记录再返回结果。实际大部分应用中是不会产生重复的记录，最常见的是过程表与历史表UNION。如：<br />
select * from gc_dfys<br />
union<br />
select * from ls_jg_dfys<br />
这个SQL在运行时先取出两个表的结果，再用排序空间进行排序删除重复的记录，最后返回结果集，如果表数据量大的话可能会导致用磁盘进行排序。
<p><strong>推荐方案：</strong>采用UNION ALL操作符替代UNION，因为UNION ALL操作只是简单的将两个结果合并后就返回。</p>
<p>select * from gc_dfys<br />
union all<br />
select * from ls_jg_dfys</p>
<p><strong>二、SQL书写的影响</strong></p>
<p><strong>1、同一功能同一性能不同写法SQL的影响。</strong></p>
<p>如一个SQL在A程序员写的为&nbsp; Select * from zl_yhjbqk</p>
<p>B程序员写的为 Select * from dlyx.zl_yhjbqk（带表所有者的前缀）
<p>C程序员写的为 Select * from DLYX.ZLYHJBQK（大写表名）
<p>D程序员写的为 Select *&nbsp; from DLYX.ZLYHJBQK（中间多了空格）
<p>以上四个SQL在ORACLE分析整理之后产生的结果及执行的时间是一样的，但是从ORACLE共享内存SGA的原理，可以得出ORACLE对每个SQL 都会对其进行一次分析，并且占用共享内存，如果将SQL的字符串及格式写得完全相同，则ORACLE只会分析一次，共享内存也只会留下一次的分析结果，这不仅可以减少分析SQL的时间，而且可以减少共享内存重复的信息，ORACLE也可以准确统计SQL的执行频率。
<p><strong>2、WHERE后面的条件顺序影响</strong>
<p>WHERE子句后面的条件顺序对大数据量表的查询会产生直接的影响。如：<br />
Select * from zl_yhjbqk where dy_dj = '1KV以下' and xh_bz=1<br />
Select * from zl_yhjbqk where xh_bz=1 and dy_dj = '1KV以下'<br />
以上两个SQL中dy_dj（电压等级）及xh_bz（销户标志）两个字段都没进行索引，所以执行的时候都是全表扫描，第一条SQL的dy_dj = '1KV以下'条件在记录集内比率为99%，而xh_bz=1的比率只为0.5%，在进行第一条SQL的时候99%条记录都进行dy_dj及xh_bz的比较，而在进行第二条SQL的时候0.5%条记录都进行dy_dj及xh_bz的比较，以此可以得出第二条SQL的CPU占用率明显比第一条低。
<p><strong>3、查询表顺序的影响</strong>
<p>在FROM后面的表中的列表顺序会对SQL执行性能影响，在没有索引及ORACLE没有对表进行统计分析的情况下，ORACLE会按表出现的顺序进行链接，由此可见表的顺序不对时会产生十分耗服物器资源的数据交叉。（注：如果对表进行了统计分析，ORACLE会自动先进小表的链接，再进行大表的链接）
<p><strong>三、SQL语句索引的利用</strong>
<p><strong>1、操作符优化（同上）</strong>
<p><strong>2、对条件字段的一些优化</strong>
<p><strong>采用函数处理的字段不能利用索引，</strong>如：
<p>substr(hbs_bh,1,4)=&#8217;5400&#8217;，优化处理：hbs_bh like &#8216;5400%&#8217;
<p>trunc(sk_rq)=trunc(sysdate)， 优化处理：sk_rq&gt;=trunc(sysdate) and sk_rq&lt;trunc(sysdate+1)
<p>进行了显式或隐式的运算的字段不能进行索引，如：ss_df+20&gt;50，优化处理：ss_df&gt;30
<p>&#8216;X&#8217; || hbs_bh&gt;&#8217;X5400021452&#8217;，优化处理：hbs_bh&gt;&#8217;5400021542&#8217;<br />
<p>sk_rq+5=sysdate，优化处理：sk_rq=sysdate-5
<p>hbs_bh=5401002554，优化处理：hbs_bh=&#8217; 5401002554&#8217;，注：此条件对hbs_bh 进行隐式的to_number转换，因为hbs_bh字段是字符型。
<p><strong>条件内包括了多个本表的字段运算时不能进行索引</strong>，如：ys_df&gt;cx_df，无法进行优化<br />
qc_bh || kh_bh=&#8217;5400250000&#8217;，优化处理：qc_bh=&#8217;5400&#8217; and kh_bh=&#8217;250000&#8217;</p>
<p><strong>四、其他</strong></p>
<p>ORACLE的提示功能是比较强的功能，也是比较复杂的应用，并且提示只是给ORACLE执行的一个建议，有时如果出于成本方面的考虑ORACLE也可能不会按提示进行。根据实践应用，一般不建议开发人员应用ORACLE提示，因为各个数据库及服务器性能情况不一样，很可能一个地方性能提升了，但另一个地方却下降了，ORACLE在SQL执行分析方面已经比较成熟，如果分析执行的路径不对首先应在数据库结构（主要是索引）、服务器当前性能（共享内存、磁盘文件碎片）、数据库对象（表、索引）统计信息是否正确这几方面分析。 </p>
<img src ="http://www.cnblogs.com/cyberhedgehog/aggbug/1201355.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42127/" target="_blank">[新闻]谷歌十年创新路</a>]]></description></item><item><title>《Head.First设计模式》的学习笔记（7）－－命令模式 </title><link>http://www.cnblogs.com/cyberhedgehog/articles/1201353.html</link><dc:creator>HedgeHog</dc:creator><author>HedgeHog</author><pubDate>Sat, 17 May 2008 05:15:00 GMT</pubDate><guid>http://www.cnblogs.com/cyberhedgehog/articles/1201353.html</guid><wfw:comment>http://www.cnblogs.com/cyberhedgehog/comments/1201353.html</wfw:comment><comments>http://www.cnblogs.com/cyberhedgehog/articles/1201353.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/cyberhedgehog/comments/commentRss/1201353.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/cyberhedgehog/services/trackbacks/1201353.html</trackback:ping><description><![CDATA[<p><strong>背景：</strong>有时候我们需要对方法进行封装，通过对这些封装的方法进行调用，我们可以很好的处理一些事情。比如，记录日志，或者重复使用这些封装实现撤销功能。</p>
<p><strong>意图：</strong>将一个请求封装为一个对象，从而使你可用不同的请求对客户进行参数化；对请求排队或记录请求日志，以及支持可撤消的操作。</p>
<p><strong>结构：</strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/wxj1020/WindowsLiveWriter/Head.First7_136AC/image_2.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="199" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/wxj1020/WindowsLiveWriter/Head.First7_136AC/image_thumb.png" width="576" border="0" /></a> </p>
<p><strong>例子：</strong>这次我们将设计一个家电自动化遥控器的ＡＰＩ</p>
<p><strong>需求分析：</strong></p>
<p>遥控器的图：<a href="http://www.cnblogs.com/images/cnblogs_com/wxj1020/WindowsLiveWriter/Head.First7_136AC/image_4.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="244" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/wxj1020/WindowsLiveWriter/Head.First7_136AC/image_thumb_1.png" width="207" border="0" /></a> </p>
<p>１）、遥控器上具有七个可编程的插槽、七个开关按钮和一个整体撤销按钮。</p>
<p>２）、通过创建一组ＡＰＩ，使插槽可以控制一个或一组家电装置，这些装置指电灯、电风扇、热水器等。</p>
<p>３）、插槽还可以控制未来可能出现的家电装置。</p>
<p>４）、整体撤销按钮具有撤销上一个命令的功能。</p>
<p><strong>初步思考：</strong></p>
<p>１）、我们将设计一系列类，这些类都具有ＯＮ（）和Ｏｆｆ（）方法。</p>
<p>２）、当遥控器上的ｏｎ或ｏｆｆ开关被按下时，某些类的ｏｎ或ｏｆｆ方法被调用，进而控制家电装置，但这些被调用的类是可以被改变的（因为插槽上的东西可以改变）。</p>
<p>３）、当ｏｎ或ｏｆｆ开关被按下时，如果我们通过ｉｆ－－ｅｌｓｅ语句加以选择判断，那么第三点需求我们将难以满足。</p>
<p>４）撤销功能如何实现，上一个按钮是什么？针对的是哪一个装置？</p>
<p><strong>进一步思考：</strong></p>
<p>这次设计中不变的是遥控器（或者说是遥控器的按钮），变化的是家电装置，例如第一排开关可以控制电灯，也可以控制电风扇，或者未来可能出现的家电。所以我们需要对遥控器和家电装置进行解耦。此时我们想到了命令模式：遥控器（或者说遥控器上的按钮）就是命令的请求者，家电装置就是命令的执行者，我们所要做的就是将命令的请求者和命令的执行者解耦。</p>
<p><strong>具体的过程：</strong></p>
<p>１）、客户创建命令。</p>
<p>２）、客户将命令的执行者封装进命令对象里。</p>
<p>３）、命令的请求者调用命令。</p>
<p>４）、命令的执行者执行命令。</p>
<p>下面我们实现只有一组开关按钮的遥控器，类图如下：</p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/wxj1020/WindowsLiveWriter/Head.First7_136AC/image_6.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="240" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/wxj1020/WindowsLiveWriter/Head.First7_136AC/image_thumb_2.png" width="475" border="0" /></a> </p>
<p><strong>代码如下：<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008080">&nbsp;1</span><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;RemoteLodder<br />
</span><span style="color: #008080">&nbsp;2</span><span style="color: #000000"><img id="Codehighlighter1_23_407_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_23_407_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_23_407_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_23_407_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_23_407_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_23_407_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_23_407_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_23_407_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_23_407_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_23_407_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;3</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Main(</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;args)<br />
</span><span style="color: #008080">&nbsp;4</span><span style="color: #000000"><img id="Codehighlighter1_73_401_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_73_401_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_73_401_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_73_401_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_73_401_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_73_401_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_73_401_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_73_401_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_73_401_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_73_401_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">&nbsp;5</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SimpleRemoteControl&nbsp;remoteControl&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;SimpleRemoteControl();<br />
</span><span style="color: #008080">&nbsp;6</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Light&nbsp;light&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Light();<br />
</span><span style="color: #008080">&nbsp;7</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LightOnCommand&nbsp;lightOnCommand&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;LightOnCommand(light);<br />
</span><span style="color: #008080">&nbsp;8</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remoteControl.SetCommand(lightOnCommand);<br />
</span><span style="color: #008080">&nbsp;9</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;remoteControl.ButtonWasPressed();<br />
</span><span style="color: #008080">10</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br />
</span><span style="color: #008080">11</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">12</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">13</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;Light<br />
</span><span style="color: #008080">14</span><span style="color: #000000"><img id="Codehighlighter1_432_624_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_432_624_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_432_624_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_432_624_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_432_624_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_432_624_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_432_624_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_432_624_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_432_624_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_432_624_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">15</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;On()<br />
</span><span style="color: #008080">16</span><span style="color: #000000"><img id="Codehighlighter1_467_524_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_467_524_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_467_524_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_467_524_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_467_524_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_467_524_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_467_524_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_467_524_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_467_524_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_467_524_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">17</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Light&nbsp;is&nbsp;on</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">18</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">19</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080">20</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Off()<br />
</span><span style="color: #008080">21</span><span style="color: #000000"><img id="Codehighlighter1_560_618_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_560_618_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_560_618_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_560_618_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_560_618_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_560_618_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_560_618_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_560_618_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_560_618_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_560_618_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">22</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Light&nbsp;is&nbsp;off</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">23</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">24</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">25</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;LightOnCommand&nbsp;:&nbsp;Command<br />
</span><span style="color: #008080">26</span><span style="color: #000000"><img id="Codehighlighter1_667_876_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_667_876_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_667_876_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_667_876_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_667_876_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_667_876_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_667_876_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_667_876_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_667_876_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_667_876_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">27</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Light&nbsp;light;<br />
</span><span style="color: #008080">28</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080">29</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;LightOnCommand(Light&nbsp;paramLight)<br />
</span><span style="color: #008080">30</span><span style="color: #000000"><img id="Codehighlighter1_747_795_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_747_795_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_747_795_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_747_795_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_747_795_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_747_795_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_747_795_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_747_795_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_747_795_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_747_795_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">31</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.light&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;paramLight;<br />
</span><span style="color: #008080">32</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">33</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080">34</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Execute()<br />
</span><span style="color: #008080">35</span><span style="color: #000000"><img id="Codehighlighter1_835_870_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_835_870_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_835_870_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_835_870_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_835_870_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_835_870_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_835_870_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_835_870_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_835_870_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_835_870_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">36</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;light.On();<br />
</span><span style="color: #008080">37</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">38</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">39</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;Command<br />
</span><span style="color: #008080">40</span><span style="color: #000000"><img id="Codehighlighter1_906_938_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_906_938_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_906_938_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_906_938_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_906_938_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_906_938_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_906_938_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_906_938_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_906_938_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_906_938_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">41</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Execute();<br />
</span><span style="color: #008080">42</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">43</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SimpleRemoteControl<br />
</span><span style="color: #008080">44</span><span style="color: #000000"><img id="Codehighlighter1_976_1205_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_976_1205_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_976_1205_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_976_1205_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_976_1205_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_976_1205_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_976_1205_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_976_1205_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_976_1205_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_976_1205_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">45</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Command&nbsp;slot;<br />
</span><span style="color: #008080">46</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080">47</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;SetCommand(Command&nbsp;paramCommand)<br />
</span><span style="color: #008080">48</span><span style="color: #000000"><img id="Codehighlighter1_1062_1111_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1062_1111_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_1062_1111_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_1062_1111_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1062_1111_Closed_Image" style="display: none" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_1062_1111_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_1062_1111_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_1062_1111_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_1062_1111_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_1062_1111_Open_Text"><span style="color: #000000">{<br />
</span><span style="color: #008080">49</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.slot&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;paramCommand;<br />
</span><span style="color: #008080">50</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
</span><span style="color: #008080">51</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
</span><span style="color: #008080">52</span