<?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>博客园-Coding,changing</title><link>http://www.cnblogs.com/hacker84/</link><description>写程序，踢足球，弹吉他~~
</description><language>zh-cn</language><lastBuildDate>Wed, 15 Oct 2008 18:58:36 GMT</lastBuildDate><pubDate>Wed, 15 Oct 2008 18:58:36 GMT</pubDate><ttl>60</ttl><item><title>[jQuery] bgiframe Plugin - 輕鬆解決 IE6 z-index 的問題</title><link>http://www.cnblogs.com/hacker84/archive/2008/10/06/1304746.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Mon, 06 Oct 2008 07:18:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/10/06/1304746.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1304746.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/10/06/1304746.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1304746.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1304746.html</trackback:ping><description><![CDATA[<table id="pid117" summary="pid117" cellpadding="0" cellspacing="0"><tbody><tr><td class="postcontent"><div class="postmessage defaultpost"><div id="postmessage_117" class="t_msgfont"><img src="http://www.cachefile.net/graphics/ui/famfamfam/mini/folder.gif" onclick="zoom(this)" onload="attachimg(this, 'load')" alt="" border="0" /> jQuery bgiframe Plugin<br />
<img src="http://www.cachefile.net/graphics/ui/famfamfam/mini/icon_home.gif" onclick="zoom(this)" onload="attachimg(this, 'load')" alt="" border="0" /> <a href="http://blog.brandonaaron.net/tag/bgiframe/" target="_blank">http://blog.brandonaaron.net/tag/bgiframe/</a><br />
<img src="http://www.cachefile.net/graphics/ui/famfamfam/mini/comment.gif" onclick="zoom(this)" onload="attachimg(this, 'load')" alt="" border="0" /> 一個步驟輕鬆解決 IE6 z-index 的問題<br />
<br />
如果網頁上有浮動區塊和下拉選單重疊時，在 IE6 會看到下拉選單總是把浮動區塊蓋住，無論怎麼調整 z-index 都是沒用的，像是這樣(<font color="DarkGreen">若您不是使用 IE6 瀏覽本頁，則應該看到的是正常的浮動區塊在上面</font>)：<br />
<br />
<br />

<select style="z-index: 1;">
  <option>This is a test!</option>
</select>
<div style="border: 1px solid red; width: 100px; height: 50px; z-index: 2; background-color: lightyellow; position: relative; top: -35px; left: 40px;">歡迎來到 jsgears.com, 這是一個浮動區塊</div>
所幸 jQuery 有方便的 plugin 可以處理這個問題，就是 bgiframe plugin。bgiframe 會在區塊的下面再插入一段 iframe，這樣就可以把下拉選單遮住，並且讓浮動區塊正常顯示。效果如下：<br />
<br />
<br />

<select style="z-index: 1;">
  <option>This is a test!</option>
</select>
<div id="floatingBox" style="border: 1px solid red; width: 100px; height: 50px; z-index: 2; background-color: lightyellow; position: relative; top: -35px; left: 40px;">歡迎來到 jsgears.com, 這是一個浮動區塊</div>

<script type="text/javascript" src="http://www.cachefile.net/scripts/jquery/1.2.3/jquery-1.2.3.pack.js"></script>
<script type="text/javascript" src="http://jsgears.com/_lib/jquery/plugins/jquery.bgiframe.pack.js"></script>
<script type="text/javascript">
$j = jQuery.noConflict();
$j(document).ready(function() {
  $j('#floatingBox').bgiframe();
});
</script>
以上範例的 HTML 原始碼如下：<div class="dp-highlighter"><div class="bar"><div class="tools"><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy to clipboard</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol class="dp-xml" start="1"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">select</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">"z-index:&nbsp;1;"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>This&nbsp;is&nbsp;a&nbsp;test!</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">select</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span><span class="tag">&lt;</span><span class="tag-name">div</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">"floatingBox"</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">"width:&nbsp;100px;&nbsp;height:&nbsp;50px;&nbsp;border:&nbsp;solid&nbsp;1px&nbsp;red;&nbsp;z-index:&nbsp;2;&nbsp;background-color:&nbsp;lightyellow;&nbsp;position:&nbsp;relative;&nbsp;top:&nbsp;-35px;&nbsp;left:&nbsp;40px;"</span><span class="tag">&gt;</span><span>歡迎來到&nbsp;jsgears.com,&nbsp;這是一個浮動區塊</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">script</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">"text/javascript"</span><span>&nbsp;</span><span class="attribute">src</span><span>=</span><span class="attribute-value">"jquery-1.2.3.pack.js"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span><span class="tag">&lt;</span><span class="tag-name">script</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">"text/javascript"</span><span>&nbsp;</span><span class="attribute">src</span><span>=</span><span class="attribute-value">"jquery.bgiframe.pack.js"</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li></ol></div><pre style="display: none;" name="code" class="html">&lt;select style="z-index: 1;"&gt;
&nbsp;&nbsp;&lt;option&gt;This is a test!&lt;/option&gt;
&lt;/select&gt;
&lt;div id="floatingBox" style="width: 100px; height: 50px; border: solid 1px red; z-index: 2; background-color: lightyellow; position: relative; top: -35px; left: 40px;"&gt;歡迎來到 jsgears.com, 這是一個浮動區塊&lt;/div&gt;
&lt;script type="text/javascript" src="jquery-1.2.3.pack.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript" src="jquery.bgiframe.pack.js"&gt;&lt;/script&gt;
</pre>除了記得引用 jquery 和 bgiframe 之外，JavaScript 的原始碼也相當簡單，只要先選出你要加入 iframe 的區塊後，再用 bgiframe() 這個函數來處理即可！<div class="dp-highlighter"><div class="bar"><div class="tools"><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy to clipboard</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol class="dp-c" start="1"><li class="alt"><span><span>$(document).ready(</span><span class="keyword">function</span><span>()&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;$(<span class="string">'#floatingBox'</span><span>).bgiframe();&nbsp;&nbsp;</span></span></li><li class="alt"><span>});&nbsp;&nbsp;</span></li></ol></div><pre style="display: none;" name="code" class="js">$(document).ready(function() {
&nbsp;&nbsp;$('#floatingBox').bgiframe();
});
</pre></div>

							
															<p class="posttags">搜索更多相關主題的帖子:
								<a href="http://jsgears.com/tag.php?name=jQuery" target="_blank">jQuery</a> 																</p>
							
							
													</div>
													<div class="signatures" style="">
								<a href="http://jsgears.com/" target="_blank">JavaScript 討論區</a>							</div>
															
			</td>
		</tr>
		<tr>
			<td class="postauthor">
								<div class="popupmenu_popup userinfopanel" id="userinfo117_menu" style="display: none;">
										<div class="imicons">
						<a href="javascript:;" onclick="msnoperate('add', 'wmh2000@msn.com')" title="添加 wmh 為MSN好友"><img src="http://jsgears.com/images/GreenPark/msnadd.gif" alt="添加 wmh 為MSN好友" /></a>
							<a href="javascript:;" onclick="msnoperate('chat', 'wmh2000@msn.com')" title="通過MSN和 wmh 交談"><img src="http://jsgears.com/images/GreenPark/msnchat.gif" alt="通過MSN和 wmh 交談" /></a>																													</div>
										<dl><dt>UID</dt><dd>2&nbsp;</dd><dt>帖子</dt><dd>150&nbsp;</dd><dt>精華</dt><dd><a href="http://jsgears.com/digest.php?authorid=2">2</a>&nbsp;</dd><dt>積分</dt><dd>137&nbsp;</dd><dt>閱讀權限</dt><dd>200&nbsp;</dd><dt>來自</dt><dd>Taipei&nbsp;</dd><dt>在線時間</dt><dd>158 小時&nbsp;</dd><dt>註冊時間</dt><dd>2007-7-14&nbsp;</dd><dt>最後登錄</dt><dd>2008-10-6&nbsp;</dd></dl>
											<p><a href="http://jsgears.com/" target="_blank">查看個人網站</a></p>
										<p><a href="http://jsgears.com/space.php?action=viewpro&amp;uid=2" target="_blank">查看詳細資料</a></p>
									</div>
							<br /></td>
			<td class="postcontent">
				<div class="postactions">
										<p>
																																																<strong onclick="scroll(0,0)" title="頂部">TOP</strong>
					</p>
					
				</div>
			</td>
		</tr>
		</tbody></table>
		<div id="ad_interthread">		</div>
	
			
			
				<table id="pid119" summary="pid119" cellpadding="0" cellspacing="0"><tbody><tr><td class="postauthor">
					 <a name="lastpost"></a>					<cite>											<a href="http://jsgears.com/space-uid-2.html" target="_blank" id="userinfo119" class="dropmenu" onmouseover="showMenu(this.id)">wmh</a></cite>
																			<div class="avatar"><img src="http://jsgears.com/customavatars/2.gif" alt="" width="100" border="0" height="100" /></div>												<p><em>管理員</em></p>
						<p><img src="http://jsgears.com/images/GreenPark/star_level3.gif" alt="Rank: 9" /><img src="http://jsgears.com/images/GreenPark/star_level3.gif" alt="Rank: 9" /><img src="http://jsgears.com/images/GreenPark/star_level1.gif" alt="Rank: 9" /></p>
																		
						<ul><li class="space">
															<a href="http://jsgears.com/space-uid-2.html" target="_blank" title="wmh的個人空間">
														個人空間</a></li><li class="pm"><a href="http://jsgears.com/pm.php?action=send&amp;uid=2" target="_blank" id="ajax_uid_119" onclick="ajaxmenu(event, this.id, 9000000, null, 0)">發短消息</a></li><li class="buddy"><a href="http://jsgears.com/my.php?item=buddylist&newbuddyid=2&amp;buddysubmit=yes" target="_blank" id="ajax_buddy_1" onclick="ajaxmenu(event, this.id, null, 0)">加為好友</a></li><li class="online">當前在線
														</li></ul>
									</td>
				<td class="postcontent">
					<div class="postinfo">
						<strong title="複製帖子鏈接到剪貼板" id="postnum_119" onclick="setcopy('http://jsgears.com/viewthread.php?tid=74&amp;page=1#pid119', '帖子鏈接已經複製到剪貼板')">2<sup>#</sup></strong>
													<em onclick="$('postmessage_119').className='t_bigfont'">大</em>							<em onclick="$('postmessage_119').className='t_msgfont'">中</em>
							<em onclick="$('postmessage_119').className='t_smallfont'">小</em>												發表於 2008-5-21 13:22&nbsp;																					<a href="http://jsgears.com/viewthread.php?tid=74&page=1&amp;authorid=2">只看該作者</a>
																		</div>
					
					<div class="postmessage defaultpost">
												
													<h2>補充</h2>
						
						
																											<div id="postmessage_119" class="t_msgfont">如果有人想知道最後的 HTML 變成怎樣了，請看：<div class="dp-highlighter"><div class="bar"><div class="tools"><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy to clipboard</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a><a href="http://jsgears.com/thread-74-1-1.html#" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol class="dp-xml" start="1"><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">SELECT</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">"Z-INDEX:&nbsp;1"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">OPTION</span><span>&nbsp;selected</span><span class="tag">&gt;</span><span>This&nbsp;is&nbsp;a&nbsp;test!</span><span class="tag">&lt;/</span><span class="tag-name">OPTION</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;/</span><span class="tag-name">SELECT</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;</span></span></li><li class=""><span><span class="tag">&lt;</span><span class="tag-name">DIV</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">floatingBox</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">"BORDER:&nbsp;red&nbsp;1px&nbsp;solid;&nbsp;WIDTH:&nbsp;100px;&nbsp;POSITION:&nbsp;relative;&nbsp;TOP:&nbsp;-35px;&nbsp;HEIGHT:&nbsp;50px;&nbsp;BACKGROUND-COLOR:&nbsp;lightyellow"</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">IFRAME</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">bgiframe</span><span>&nbsp;</span><span class="attribute">style</span><span>=</span><span class="attribute-value">"DISPLAY:&nbsp;block;&nbsp;Z-INDEX:&nbsp;-1;&nbsp;FILTER:&nbsp;Alpha(Opacity='0');&nbsp;LEFT:&nbsp;-1px;&nbsp;;&nbsp;LEFT:&nbsp;expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+'px');&nbsp;WIDTH:&nbsp;102px;&nbsp;;&nbsp;WIDTH:&nbsp;expression(this.parentNode.offsetWidth+'px');&nbsp;POSITION:&nbsp;absolute;&nbsp;TOP:&nbsp;-1px;&nbsp;;&nbsp;TOP:&nbsp;expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+'px');&nbsp;HEIGHT:&nbsp;80px;&nbsp;;&nbsp;HEIGHT:&nbsp;expression(this.parentNode.offsetHeight+'px')"</span><span>&nbsp;&nbsp;&nbsp;</span></span></li><li class=""><span><span class="attribute">tabIndex</span><span>=-1&nbsp;</span><span class="attribute">src</span><span>=</span><span class="attribute-value">"javascript:false;"</span><span>&nbsp;</span><span class="attribute">frameBorder</span><span>=</span><span class="attribute-value">0</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">IFRAME</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>歡迎來到&nbsp;jsgears.com,&nbsp;這是一個浮動區塊&nbsp;&nbsp;</span></li><li class=""><span><span class="tag">&lt;/</span><span class="tag-name">DIV</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li></ol></div></div></div></td></tr></tbody></table><img src ="http://www.cnblogs.com/hacker84/aggbug/1304746.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43012/" target="_blank">[新闻]最富有科技公司：中移动310亿美元居首</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>vim 使用技巧[zz]</title><link>http://www.cnblogs.com/hacker84/archive/2008/09/29/1302139.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Mon, 29 Sep 2008 08:23:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/09/29/1302139.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1302139.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/09/29/1302139.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1302139.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1302139.html</trackback:ping><description><![CDATA[<pre style="color: rgb(128, 0, 128);">vim 使用技巧<br />作者: camry.wu@gmail.com<br /><br />我是 vim 粉丝, 用了许久, 有一些自己的感受, 又到处挖到一些别人的技巧. 感觉对 vim<br />粉丝比较有用, 就把它记在这儿. 希望借此文套出大家自己的巧活, 就正应了抛砖引玉的古<br />话了.<br /><br />先稍为介绍一下 vim. vi 是 unix/linux 下极为普遍的一种文本编辑器, 大部分机器上都<br />有. vi 有各种变种, 在不同的机器上常用不同的变种软件. 其中 vim 比较好用也用得比较<br />广泛. vim 是 Vi IMproved 的缩写, 表示更好的 vi. 我个人觉得它是非常好的编辑器(为<br />了避免 Emacs 粉丝挑眼, 就不说最好了). 没用过的也建议试试看, 当然 vim 对编写文本<br />文件很方便好用, 比如编写程序, html文档等等, 却不能用来编写 word 文档.<br /><br />关于 vim 的安装, 基本使用方法等网络上能搜出许多, 就不在这里罗嗦了, 要是对 vim 有<br />兴趣, 那就看看这里(中文文档): <a href="http://vcd.gro.clinux.org/">http://vcd.gro.clinux.org/</a><br /><br />本文就说些其中比较有用, 比较常用的命令, 若能熟练运用这些命令, 那么会发现编辑文件<br />很舒服.<br /><br />说明:<br />以下的例子中 xxx 表示在命令模式下输入 xxx 并回车<br />以下的例子中 :xxx 表示在扩展模式下输入 xxx 并回车<br />小括号中的命令表示相关命令.<br />在编辑模式或可视模式下输入的命令会另外注明.<br /><br />1. 查找<br /><br />  /xxx(?xxx)      表示在整篇文档中搜索匹配xxx的字符串, / 表示向下查找, ? 表示<br />                  向上查找.其中xxx可以是正规表达式,关于正规式就不多说了.<br />                  一般来说是区分大小写的, 要想不区分大小写, 那得先输入<br />                  :set ignorecase<br />                  查找到以后, 再输入 n 查找下一个匹配处, 输入 N 反方向查找.<br /><br />  *(#)            当光标停留在某个单词上时, 输入这条命令表示查找与该单词匹配的<br />                  下(上)一个单词. 同样, 再输入 n 查找下一个匹配处, 输入 N 反方<br />                  向查找.<br /><br />  g*(g#)          此命令与上条命令相似, 只不过它不完全匹配光标所在处的单词, 而<br />                  是匹配包含该单词的所有字符串.<br /><br />  gd              本命令查找与光标所在单词相匹配的单词, 并将光标停留在文档的非<br />                  注释段中第一次出现这个单词的地方.<br /><br />  %               本命令查找与光标所在处相匹配的反括号, 包括 () [] {}<br /><br />  f(F)x           本命令表示在光标所在行进行查找, 查找光标右(左)方第一个x字符.<br />                  找到后:<br />                  输入 ; 表示继续往下找<br />                  输入 , 表示反方向查找<br /><br />2. 快速移动光标<br />   在 vi 中, 移动光标和编辑是两件事, 正因为区分开来, 所以可以很方便的进行光标定<br />位和编辑. 因此能更快一点移动光标是很有用的.<br /><br />  w(e)            移动光标到下一个单词.<br />  b               移动光标到上一个单词.<br /><br />  0               移动光标到本行最开头.<br />  ^               移动光标到本行最开头的字符处.<br />  $               移动光标到本行结尾处.<br /><br />  H               移动光标到屏幕的首行.<br />  M               移动光标到屏幕的中间一行.<br />  L               移动光标到屏幕的尾行.<br />  gg              移动光标到文档首行.<br />  G               移动光标到文档尾行.<br />  c-f             (即 ctrl 键与 f 键一同按下) 本命令即 page down.<br />  c-b             (即 ctrl 键与 b 键一同按下, 后同) 本命令即 page up.<br /><br />  ''              此命令相当有用, 它移动光标到上一个标记处, 比如用 gd, * 等查<br />                  找到某个单词后, 再输入此命令则回到上次停留的位置.<br /><br />  '.              此命令相当好使, 它移动光标到上一次的修改行.<br /><br />  `.              此命令相当强大, 它移动光标到上一次的修改点.<br /><br />3. 拷贝, 删除与粘贴<br />   在 vi 中 y 表示拷贝, d 表示删除, p 表示粘贴. 其中拷贝与删除是与光标移动命令<br />结合的, 看几个例子就能够明白了.<br /><br />  yw              表示拷贝从当前光标到光标所在单词结尾的内容.<br />  dw              表示删除从当前光标到光标所在单词结尾的内容.<br />  y0              表示拷贝从当前光标到光标所在行首的内容.<br />  d0              表示删除从当前光标到光标所在行首的内容.<br />  y$              表示拷贝从当前光标到光标所在行尾的内容.<br />  d$              表示删除从当前光标到光标所在行尾的内容.<br />  yfa             表示拷贝从当前光标到光标后面的第一个a字符之间的内容.<br />  dfa             表示删除从当前光标到光标后面的第一个a字符之间的内容.<br /><br />  特殊地:<br />  yy              表示拷贝光标所在行.<br />  dd              表示删除光标所在行.<br />  D               表示删除从当前光标到光标所在行尾的内容.<br /><br />  关于拷贝, 删除和粘贴的复杂用法与寄存器有关, 可以自行查询.<br /><br />4. 数字与命令<br />   在 vi 中数字与命令结合往往表示重复进行此命令, 若在扩展模式的开头出现则表示行<br />号定位. 如:<br /><br />  5fx             表示查找光标后第 5 个 x 字符.<br /><br />  5w(e)           移动光标到下五个单词.<br /><br />  5yy             表示拷贝光标以下 5 行.<br />  5dd             表示删除光标以下 5 行.<br /><br />  y2fa            表示拷贝从当前光标到光标后面的第二个a字符之间的内容.<br /><br />  :12,24y         表示拷贝第12行到第24行之间的内容.<br />  :12,y           表示拷贝第12行到光标所在行之间的内容.<br />  :,24y           表示拷贝光标所在行到第24行之间的内容. 删除类似.<br /><br />5. 快速输入字符<br />   在 vi 中, 不要求你输入每一个字符, 可以有很多种方法快速输入一些字符.<br />   使用 linux/unix 的同学一定有一个经验, 在命令行下输入命令时敲入头几个字符再按<br />TAB 系统就会自动将剩下的字符补齐, 假如有多个匹配则会打印出来. 这就是著名的命令<br />补齐(其实windows中也有文件名补齐功能). vi 中有许多的字符串补齐命令, 非常方便.<br /><br />  c-p(c-n)        在编辑模式中, 输入几个字符后再输入此命令则 vi 开始向上(下)搜<br />                  索开头与其匹配的单词并补齐, 不断输入此命令则循环查找. 此命令<br />                  会在所有在这个 vim 程序中打开的文件中进行匹配.<br /><br />  c-x-l           在编辑模式中, 此命令快速补齐整行内容, 但是仅在本窗口中出现的<br />                  文档中进行匹配.<br /><br />  c-x-f           在编辑模式中, 这个命令表示补齐文件名. 如输入:<br />                  /usr/local/tom 后再输入此命令则它会自动匹配出:<br />                  /usr/local/tomcat/<br /><br />  abbr            即缩写. 这是一个宏操作, 可以在编辑模式中用一个缩写代替另一个<br />                  字符串. 比如编写java文件的常常输入 System.out.println, 这很<br />                  是麻烦, 所以应该用缩写来减少敲字. 可以这么做:<br />                  :abbr sprt System.out.println<br />                  以后在输入sprt后再输入其他非字母符号, 它就会自动扩展为System.<br />                  out.println<br /><br />6. 替换<br />   替换是 vi 的强项, 因为可以用正规表达式来匹配字符串.以下提供几个例子.<br /><br />  :s/aa/bb/g      将光标所在行出现的所有包含 aa 的字符串中的 aa 替换为 bb<br />  :s/\&lt;aa\&gt;/bb/g  将光标所在行出现的所有 aa 替换为 bb, 仅替换 aa 这个单词<br />  :%s/aa/bb/g     将文档中出现的所有包含 aa 的字符串中的 aa 替换为 bb<br />  :12,23s/aa/bb/g 将从12行到23行中出现的所有包含 aa 的字符串中的 aa 替换为 bb<br />  :12,23s/^/#/    将从12行到23行的行首加入 # 字符<br />  :%s= *$==       将所有行尾多余的空格删除<br />  :g/^\s*$/d       将所有不包含字符(空格也不包含)的空行删除.<br /><br />7. 多文件编辑<br />   在一个 vim 程序中打开很多文件进行编辑是挺方便的.<br /><br />  :sp(:vsp) 文件名    vim 将分割出一个横(纵)向窗口, 并在该窗口中打开新文件.<br />                      从 vim6.0 开始, 文件名可以是一个目录的名称, 这样, vim 会<br />                      把该目录打开并显示文件列表, 在文件名上按回车则在本窗口打<br />                      开该文件, 若输入 O 则在新窗口中打开该文件, 输入 ? 可以看<br />                      到帮助信息.<br /><br />  :e 文件名           vim 将在原窗口中打开新的文件, 若旧文件编辑过, 会要求保存.<br /><br />  c-w-w               vim 分割了好几个窗口怎么办? 输入此命令可以将光标循环定位<br />                      到各个窗口之中.<br /><br />  :ls                 此命令查看本 vim 程序已经打开了多少个文件, 在屏幕的最下方<br />                      会显示出如下数据:<br />                      1   %a      "usevim.html"         行 162<br />                      2   #       "xxxxxx.html"         行 0<br /><br />                      其中:<br />                      1               表示打开的文件序号, 这个序号很有用处.<br />                      %a              表示文件代号, % 表示当前编辑的文件,<br />                                      # 表示上次编辑的文件<br />                      "usevim.html"   表示文件名.<br />                      行 162          表示光标位置.<br /><br />  :b 序号(代号)       此命令将指定序号(代号)的文件在本窗口打开, 其中的序号(代号)<br />                      就是用 :ls 命令看到的.<br /><br />  :set diff           此命令用于比较两个文件, 可以用<br />                      :vsp filename<br />                      命令打开另一个文件, 然后在每个文件窗口中输入此命令,就能看<br />                      到效果了.<br /><br />8. 宏替换<br />   vi 不仅可以用 abbr 来替换文字, 也可以进行命令的宏定义. 有些命令输起来很费劲,<br />因此我把它们定义到 &lt;F1&gt;-&lt;F12&gt; 上, 这样就很方便了.这些配置可以预先写到 ~/.vimrc<br />(windows 下为 $VIM/_vimrc) 中, 写进去的时候不用写前面的冒号.<br /><br />  :nmap &lt;F2&gt; :nohls&lt;cr&gt;              取消被搜索字串的高亮<br />  :nmap &lt;F9&gt; &lt;C-W&gt;w                  命令模式下转移光标到不同窗口<br />  :imap &lt;F9&gt; &lt;ESC&gt;&lt;F9&gt;               输入模式下运行&lt;F9&gt;<br />  :nmap &lt;F12&gt; :%s= *$==&lt;cr&gt;          删除所有行尾多余的空格.<br />  :imap &lt;F12&gt; &lt;ESC&gt;&lt;F12&gt;             同上<br /><br />  :java 中: (注, 这里为什么说 java 中, 因为以下定义对其他文件格式不起作用, 下文<br />            会说到如何实现这一点)<br />  :nmap &lt;F3&gt; :comp javac&lt;CR&gt;:mak -d . %&lt;CR&gt;<br />       此命令用 javac 编译 java 文件, 它会自动将光标定位到出错点. 不过这需要定<br />       义一个 javac.vim 文件在 $VIM/compiler 下, 在 javac.vim 里面只有两行字:<br />          setlocal makeprg=javac<br />          setlocal errorformat=%A%f:%l:\ %m,%-Z%p^,%-C%.%#<br /><br />  :nmap &lt;F4&gt; :comp ant&lt;CR&gt;:mak&lt;CR&gt;<br />       此命令用 ant 编译 java 文件, 它会自动将光标定位到出错点. 一般来说, 安装<br />       vim 后已经有了compiler/ant.vim文件, 因此这个命令可以直接使用. 但是需要<br />       在当前目录下有 build.xml 文件, 当然还必须安装 ant 才行.<br /><br />  :nmap &lt;F5&gt; :cl&lt;CR&gt;                 此命令用于查看所有的编译错误.<br />  :imap &lt;F5&gt; &lt;ESC&gt;&lt;F5&gt;<br /><br />  :nmap &lt;F6&gt; :cc&lt;CR&gt;                 此命令用于查看当前的编译错误.<br />  :imap &lt;F6&gt; &lt;ESC&gt;&lt;F6&gt;<br /><br />  :nmap &lt;F7&gt; :cn&lt;CR&gt;                 此命令用于跳到下一个出错位置.<br />  :imap &lt;F7&gt; &lt;ESC&gt;&lt;F7&gt;<br /><br />  :nmap &lt;F8&gt; :cp&lt;CR&gt;                 此命令用于跳到上一个出错位置.<br />  :imap &lt;F8&gt; &lt;ESC&gt;&lt;F8&gt;<br /><br />  :nmap &lt;F11&gt; :JavaBrowser&lt;cr&gt;<br />       此命令用于在窗口左部分割出一个新窗口, 里面的内容是 java 的资源树, 包括<br />       本文件中出现的类, 类的成员变量及成员方法, 就好像 JCreator 表现的那样.<br />       在这个窗口中输入 ? 会看到帮助. 嘿嘿, 很好用, 不过需要 ctags 支持.<br />  :imap &lt;F11&gt; &lt;ESC&gt;&lt;F11&gt;<br /><br />9. TAB<br />   TAB 就是制表符, 单独拿出来做一节是因为这个东西确实很有用.<br /><br />   &lt;&lt;                  输入此命令则光标所在行向左移动一个 tab.<br />   &gt;&gt;                  输入此命令则光标所在行向右移动一个 tab.<br />   5&gt;&gt;                 输入此命令则光标后 5 行向右移动一个 tab.<br />   :12,24&gt;             此命令将12行到14行的数据都向右移动一个 tab.<br />   :12,24&gt;&gt;            此命令将12行到14行的数据都向右移动两个 tab.<br /><br />   那么如何定义 tab 的大小呢? 有人愿意使用 8 个空格位, 有人用4个, 有的用2个.<br />   有的人希望 tab 完全用空格代替, 也有的人希望 tab 就是 tab. 没关系, vim 能<br />   帮助你.以下的设置一般也都先写入配置文件中, 免得老敲.<br /><br />   :set shiftwidth=4   设置自动缩进 4 个空格, 当然要设自动缩进先.<br />   :set sts=4          即设置 softtabstop 为 4. 输入 tab 后就跳了 4 格.<br />   :set tabstop=4      实际的 tab 即为 4 个空格, 而不是缺省的 8 个.<br />   :set expandtab      在输入 tab 后, vim 用恰当的空格来填充这个 tab.<br /><br />10. autocmd<br />    这个命令十分的强大, 可以用这个命令实现对不同的文件格式应用不同的配置; 可以<br />在新建文件时自动添加上版权声明等等. 这些命令一般定义在 ~/.vimrc 这样的配置文件<br />里面. 由于他很强大, 所以我不能给出很具体的说明, 只能举几个例子, 详细的请看帮助.<br /><br />  :autocmd!               删除所有之前的自动命令.<br />  autocmd FileType        java  source ~/.vim/files/java.vim<br />  autocmd FileType        java  source ~/.vim/files/jcommenter.vim<br />    以上两条命令让我在打开 java 文件时才应用后面提到的两个配置文件.<br />  autocmd BufNewFile      *.java  0r ~/.vim/files/skeletons/java.skel<br />    以上这条命令让我在新建 java 文件时自动加入 java.skel 文件的内容.<br />  autocmd BufNewFile      *.java  normal gnp<br />    以上这条命令让我在新建 java 文件时自动运行 gnp 命令, 这个命令进行一些特殊化<br />    处理, 比如将新 java 文件中的 __date__ 替换成今天的日期什么的.<br /><br />11. 常用脚本<br />    在 vim.sf.net 你可以发现很多脚本(script), 这些脚本常常有让你意想不到的作用.<br />我常用的有:<br /><br />    jcommenter.vim        自动加入 javadoc 风格的注释.<br />    JBrowser.vim          类资源浏览. C, C++ 等可以用 Tlist<br /><br />    还有许多有用的, 比如 checkstyle.vim 可以检验你的编程风格, jad.vim 可以直接<br />    反编译 .class 文件等等.<br /><br />12. 常用配置<br />    在~/.vimrc 配置文件中你常常需要一些个性化配置. 比如上面写的一些宏定义, 一些<br />autocmd 定义等等. 比如:<br /><br />    set suffixes=.bak,~,.o,.h,.info,.swp,.aux,.bbl,.blg,.dvi,.lof,.log,.lot,.ps,.toc<br />        这样在vim中打开文件时, 按 tab 键补齐文件名时它会忽略上述文件.<br /><br />    set nu          显示行号<br />    set ai          设置自动缩进<br />    map Y y$        让 Y 和 D 一样, 要不然 Y 的本意和 yy 一样.<br /><br />13. 其他<br />    还有许多有意思的命令, 记录在这里免得忘记.<br /><br />    .                                               重复上次编辑命令.<br />    :g/^/exec "s/^/".strpart(line(".")." ", 0, 4)   在行首插入行号<br />    :runtime! syntax/2html.vim                      转换 txt 成 html, 会按照你的<br />                                                    颜色配置来转<br /><br /><br />支持Java：<br /><br />对标签跳跃的支持<br /><br /><br /><br />标签是Java的标识符，它们可以是包装名、类名、方法名，或者是字段名。在你的代码里创建一个所有标签的大型<br />索引，能够让你使用单个按键就跳跃到任何类、方法或者字段的定义上。这些索引文件都是使用ctags程序创建的，<br />后者在vim的发行版里都有。<br /><br /><br /><br />Ctags会获取Java源文件或者包含有Java源代码的目录的列表，从中提取标识符的信息，再生成所vi需要的用于跳跃<br />到标签的排序索引。下面一行代码是ctags调用的一个例子，只要JAVA_HOME变量被正确地定义，它会生成一个包含<br />有项目源代码里所有标识符的标签文件，Sun核心库源代码也是如此：<br /><br /> <br /><br />ctags -f ~/.tags -R ~/myprojects/src $JAVA_HOME/src<br /><br /><br /><br />一旦标签索引创建好了，你所需要做的只是告诉vi要在哪里找到它。这一步是通过将set<br />tags=~/.tags添加到你的~/.vimrc文件里实现的。有了可用的标签索引文件，而且vi也知道了要到哪里去找到它，<br />你现在就可以通过按[CTRL]]来跳跃到任何标识符上了。尽管这对于跳跃到你已经定义的方法、类和你自己编写的字<br />段上很有用，但是如果你将Java核心类库加到你的标签索引里将会更加有用。现在，只用简单地对任何核心类库的<br />类或者方法按[Ctrl] ]，你就会跳跃到它完全使用javadoc所编写成的定义。.<br /><br /><br /><br />标签名的填充<br /><br /><br /><br />  <br /><br />虽然跳跃到类、方法和字段定义所在的位置对于查看其javadoc以及检查其内容是有很用处的，但是更常见的情况是，<br />你只是需要检查一个关键字的定义。在大多数IDE里，这一点是通过输入关键字完成的。但是，如果你已经将你的标<br />签文件像前面一部分所讲的那样设置了，那么在vi里填入关键字就只是一个导向性的配置了。<br /><br /><br /><br />将set<br />complete=.,w,b,u,t,I这一行放到你的~/.vimrc文件里，能够让你在插入模式下通过按[Ctrl]N自动地将任何类、方<br />法或者字段名填满。连续按[Ctrl]N将移动到下一个相匹配的地方。当你看到你想要找的标签时，只用继续输入你源<br />代码剩下的部分就行了。你可以在vim的Web网站上找到其他关于标签名填充的提示，包括使用Tab键来进行填充。<br /><br /><br /><br />方法的折叠<br /><br /><br /><br />好的实践经验告诉我们：你应该保持类的短小和简单，因为程序复杂性表现在类的层次性上，而不是500行的方法<br />上。不幸的是，有些类已经脱离了控制，变得事实上无法移动操作了。<br /><br /><br /><br />IDE常常会在左边一个狭窄的框体提供一个列出了内容里方法的表格，以此来减轻开发人员查看冗长源代码的困难。<br />与之相对的是，vi提供了一种它叫做“方法折叠（methodfolding）”的可折叠程序块。折叠允许你隐藏被缩排过的<br />（indented）代码块开头和结尾之间的所有代码。要激活折叠，就要把set foldmethod=indent加到你的~/vimrc里。<br /><br /><br /><br />一旦方法的折叠被激活，你就可以使用:set<br />foldlevel=0来极大地精简一个Java的源文件。如果将折叠的层数设置为零，那么你就是在告诉vi只显示完全没有被缩排的命令行，而后者在大多<br />数Java源文件里代表着包装、导入，以及类或者接口的定义行。设置foldlevel=1就是告诉vi说：除了没有被缩排的命令行，只缩排过一次的命令<br />行也应该被显示，它们包括方法的签名以及其他一些不多的内容。要打开一个折叠夹并查看某个方法所隐藏的内容，你就要在被折叠的命令行上输入zO。<br /><br /><br /><br />通过设置foldlevel就能够很轻易地开启或者取消方法的折叠。我喜欢在调试的时候使用它，但是不喜欢在编写新代码的时候使用它。你要自己来决定它应该如何去适应你的工作方式。<br /><br />IDE不仅仅只是用于编辑；它们还是编译环境。Vi在不需要使用外部编译器和剖析结果信息上的工作做得非常好。现在很多Java的项目都将易于编写脚本的<br />Ant作为一个创建环境。我没有向.vimrc文件里加载很多Ant专用的设置，而是单独创建了一个做作vimAnt脚本，见Listing B。<br /><br /><br /><br />这个脚本调用了一个带有几个参数的Ant可执行文件，然后对输出进行过滤，让其只包含编译器输出。你现在几乎就准备好从vi里调用Ant了。你只需要将<br />Listing<br />C里的命令行加到你的~/.vimrc文件里。这些命令行告诉vi要调用你所创建的vimAnt脚本，并提示它如何剖析Ant的jikes输出。<br /><br /><br /><br />在你的系统路径下有了vimAnt脚本之后，你现在就可以使用:make命令来初始化编译了。当前目录及其所有的父目录都会被搜索，以寻找一个build.xml文件，这个文件的类对象会被调用。错误输出会被vi自动地剖析。<br /><br /><br /><br />一旦你在vi里进行了带有错误的编译，你就可以使用快速修复（quick<br />fix）模式来迅速地到达错误地点，进行及时的修补。:cn命令会把你带到下一个出错地点，而不考虑它在什么文件里。:cc命令会向你显示当前错误的编译<br />器输出信息；而:cl会生成一个列有项目所有错误的列表，以供浏览这些错误。修补好你的错误，你就离成功的编译只有一:make之遥了。<br /><br />还有一篇是滇狐（水木上的一个牛人）写的关于vim的插件：<br />http://learn.tsinghua.edu.cn:8080/2005212716/html/vimplugins.html</pre><img src ="http://www.cnblogs.com/hacker84/aggbug/1302139.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43010/" target="_blank">[新闻]华盛顿抛弃微软Office 选择Google Apps</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>浮动层固定位置的方法</title><link>http://www.cnblogs.com/hacker84/archive/2008/09/23/1296863.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Tue, 23 Sep 2008 06:36:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/09/23/1296863.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1296863.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/09/23/1296863.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1296863.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1296863.html</trackback:ping><description><![CDATA[<div class="hl-surround"><ol class="hl-main ln-show" title="双击代码区域隐藏行号." ondblclick="linenumber(this)"><li class="hl-firstline"><span style="color: Green;">var</span><span style="color: Gray;"> $ = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">getElementById</span><span style="color: Gray;">;</span></li><li><span style="color: Green;">var</span><span style="color: Gray;"> $$ = </span><span style="color: Teal;">document</span><span style="color: Gray;">.</span><span style="color: Blue;">documentElement</span><span style="color: Gray;">;</span></li><li><span style="color: Green;">function</span><span style="color: Gray;">&nbsp;</span><span style="color: Blue;">fixDiv</span><span style="color: Olive;">(</span><span style="color: Blue;">id</span><span style="color: Olive;">){</span></li><li><span style="color: Gray;">&nbsp; &nbsp; $</span><span style="color: Olive;">(</span><span style="color: Blue;">id</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">style</span><span style="color: Gray;">.</span><span style="color: Blue;">top</span><span style="color: Gray;"> = </span><span style="color: Olive;">(</span><span style="color: Gray;">$$.</span><span style="color: Blue;">scrollTop</span><span style="color: Gray;"> + $$.</span><span style="color: Blue;">clientHeight</span><span style="color: Gray;"> - $</span><span style="color: Olive;">(</span><span style="color: Blue;">id</span><span style="color: Olive;">)</span><span style="color: Gray;">.</span><span style="color: Blue;">clientHeight</span><span style="color: Gray;"> - </span><span style="color: Maroon;">20</span><span style="color: Olive;">)</span><span style="color: Gray;"> + </span><span style="color: rgb(139, 0, 0);">"</span><span style="color: Red;">px</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: Gray;">;</span></li><li><span style="color: Gray;">&nbsp; &nbsp; </span><span style="color: Blue;">setTimeout</span><span style="color: Olive;">(</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: Red;">fixDiv('newYear')</span><span style="color: rgb(139, 0, 0);">"</span><span style="color: Gray;">,</span><span style="color: Maroon;">2</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li><li><span style="color: Olive;">}</span></li><li><span style="color: Blue;">fixDiv</span><span style="color: Olive;">(</span><span style="color: rgb(139, 0, 0);">'</span><span style="color: Red;">newYear</span><span style="color: rgb(139, 0, 0);">'</span><span style="color: Olive;">)</span><span style="color: Gray;">;</span></li></ol></div><img src ="http://www.cnblogs.com/hacker84/aggbug/1296863.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43009/" target="_blank">[新闻]微软：WGA验证每小时黑屏是善意提醒</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>存储过程分页</title><link>http://www.cnblogs.com/hacker84/archive/2008/08/29/1279527.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Fri, 29 Aug 2008 07:44:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/08/29/1279527.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1279527.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/08/29/1279527.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1279527.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1279527.html</trackback:ping><description><![CDATA[<span style="color: rgb(0, 128, 128);">/*</span><span style="color: rgb(0, 128, 128);"><br />  函数名称: GetRecordFromPage<br />  函数功能: 获取指定页的数据<br />  参数说明: @tblName      包含数据的表名<br />           @fldName      关键字段名<br />           @PageSize     每页记录数<br />           @PageIndex    要获取的页码<br />           @OrderType    排序类型, 0 - 升序, 1 - 降序<br />           @strWhere     查询条件 (注意: 不要加 where)<br /></span><span style="color: rgb(0, 128, 128);">*/</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">ALTER</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">PROCEDURE</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">dbo</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(255, 0, 0);">[</span><span style="color: rgb(255, 0, 0);">GetRecordFromPage</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(0, 128, 0);">@tblName</span><span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">varchar</span><span style="color: rgb(0, 0, 0);">(</span><span style="font-weight: bold; color: rgb(128, 0, 0);">255</span><span style="color: rgb(0, 0, 0);">),       </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 表名</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);">      </span><span style="color: rgb(0, 0, 255);">varchar</span><span style="color: rgb(0, 0, 0);">(</span><span style="font-weight: bold; color: rgb(128, 0, 0);">255</span><span style="color: rgb(0, 0, 0);">),       </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 字段名</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 128, 0);">@PageSize</span><span style="color: rgb(0, 0, 0);">     </span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(128, 0, 0);">25</span><span style="color: rgb(0, 0, 0);">,           </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 页尺寸</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 128, 0);">@PageIndex</span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(128, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">,            </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 页码</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 128, 0);">@OrderType</span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 0, 255);">bit</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(128, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">,            </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 设置排序类型, 非 0 值则降序</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 0);">    </span><span style="color: rgb(0, 128, 0);">@strWhere</span><span style="color: rgb(0, 0, 0);">     </span><span style="color: rgb(0, 0, 255);">varchar</span><span style="color: rgb(0, 0, 0);">(</span><span style="font-weight: bold; color: rgb(128, 0, 0);">2000</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">''</span><span style="color: rgb(0, 0, 0);">  </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 查询条件 (注意: 不要加 where)</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 255);">AS</span><span style="color: rgb(0, 0, 0);"><br /><br /></span><span style="color: rgb(0, 0, 255);">declare</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strSQL</span><span style="color: rgb(0, 0, 0);">   </span><span style="color: rgb(0, 0, 255);">varchar</span><span style="color: rgb(0, 0, 0);">(</span><span style="font-weight: bold; color: rgb(128, 0, 0);">6000</span><span style="color: rgb(0, 0, 0);">)       </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 主语句</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 255);">declare</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strTmp</span><span style="color: rgb(0, 0, 0);">   </span><span style="color: rgb(0, 0, 255);">varchar</span><span style="color: rgb(0, 0, 0);">(</span><span style="font-weight: bold; color: rgb(128, 0, 0);">1000</span><span style="color: rgb(0, 0, 0);">)       </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 临时变量</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 255);">declare</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strOrder</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">varchar</span><span style="color: rgb(0, 0, 0);">(</span><span style="font-weight: bold; color: rgb(128, 0, 0);">500</span><span style="color: rgb(0, 0, 0);">)        </span><span style="color: rgb(0, 128, 128);">--</span><span style="color: rgb(0, 128, 128);"> 排序类型</span><span style="color: rgb(0, 128, 128);"><br /></span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@OrderType</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">!=</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(128, 0, 0);">0</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">begin</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strTmp</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">&lt;(select min</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strOrder</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> order by [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">] desc</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">end</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">else</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">begin</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strTmp</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">&gt;(select max</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strOrder</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> order by [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">] asc</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">end</span><span style="color: rgb(0, 0, 0);"><br /><br /></span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strSQL</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">select top </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 255);">str</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 128, 0);">@PageSize</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> * from [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@tblName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">] where [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strTmp</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">([</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">]) from (select top </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 255);">str</span><span style="color: rgb(0, 0, 0);">((</span><span style="color: rgb(0, 128, 0);">@PageIndex</span><span style="color: rgb(128, 128, 128);">-</span><span style="font-weight: bold; color: rgb(128, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">)</span><span style="color: rgb(128, 128, 128);">*</span><span style="color: rgb(0, 128, 0);">@PageSize</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">] from [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@tblName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strOrder</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">) as tblTmp)</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strOrder</span><span style="color: rgb(0, 0, 0);"><br /><br /></span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strWhere</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">!=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">''</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strSQL</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">select top </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 255);">str</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 128, 0);">@PageSize</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> * from [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />        </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@tblName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">] where [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strTmp</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">([</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />        </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">]) from (select top </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 255);">str</span><span style="color: rgb(0, 0, 0);">((</span><span style="color: rgb(0, 128, 0);">@PageIndex</span><span style="color: rgb(128, 128, 128);">-</span><span style="font-weight: bold; color: rgb(128, 0, 0);">1</span><span style="color: rgb(0, 0, 0);">)</span><span style="color: rgb(128, 128, 128);">*</span><span style="color: rgb(0, 128, 0);">@PageSize</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />        </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@fldName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">] from [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@tblName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">] where </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strWhere</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />        </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strOrder</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">) as tblTmp) and </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strWhere</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strOrder</span><span style="color: rgb(0, 0, 0);"><br /><br /></span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@PageIndex</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(128, 0, 0);">1</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">begin</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strTmp</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">''</span><span style="color: rgb(0, 0, 0);"><br />    </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strWhere</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">!=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">''</span><span style="color: rgb(0, 0, 0);"><br />        </span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strTmp</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> where (</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strWhere</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">)</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br /><br />    </span><span style="color: rgb(0, 0, 255);">set</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strSQL</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">select top </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 255);">str</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(0, 128, 0);">@PageSize</span><span style="color: rgb(0, 0, 0);">) </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> * from [</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"><br />        </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@tblName</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);">]</span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strTmp</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(255, 0, 0);">'</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 128, 128);">+</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 128, 0);">@strOrder</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">end</span><span style="color: rgb(0, 0, 0);"><br /></span><span style="color: rgb(0, 0, 255);">exec</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 128, 0);">@strSQL</span><span style="color: rgb(0, 0, 0);">)</span><img src ="http://www.cnblogs.com/hacker84/aggbug/1279527.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43008/" target="_blank">[新闻]研究表明上网可以提高记忆力</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>ref out param</title><link>http://www.cnblogs.com/hacker84/archive/2008/08/26/1276915.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Tue, 26 Aug 2008 10:06:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/08/26/1276915.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1276915.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/08/26/1276915.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1276915.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1276915.html</trackback:ping><description><![CDATA[<p>如果在方法声明参数中未使用ref或out关键字，在方法中更改参数的值，当控制传递回调用过程时，不会保留更改的值；我们可以通过方法参数关键字，更改这种行为。<br />
1.ref<br />
2.out<br />
3.params<br />
<br />
ref和out关键字都可以使参数按引用传递，当控制权传递回调用方时，在被调方法中对参数所做的任何修改都将反映在该变量中，在使用时，都要求方法定义和调用方法显式使用ref或out关键字，但是它们有如下的几个区别：<br />
a.当使用ref关键字时，传递到ref参数的变量必须事先初始化,而与 out不同，out 的参数在传递前不需要初始化，请看示例：<br />
<font face="Verdana"> static void Main(string[] args)<br />
        {<br />
            string aa = "0";  //传递给ref参数前，必须先初始化<br />
            TestRef(ref aa);<br />
            Console.WriteLine(aa);</font><br />
         }<br />
<font face="Verdana"> <font face="Verdana"> public static void TestRef(ref string refTest)<br />
        {<br />
            refTest = "1";<br />
         }<br />
结果输出 "1"<br />
<br />
<font face="Verdana"> static void Main(string[] args)<br />
        {<br />
            string aa;  //传递给out参数前，不必先初始化<br />
            TestRef(out aa);<br />
            Console.WriteLine(aa);<br />
         }<br />
<font face="Verdana"> public static void TestRef(out string refTest)<br />
        {<br />
            refTest = "1";</font><br />
         }<br />
结果输出"1"<br />
ref和out在运行时的处理方式不同，但是在编译的时候的处理方式确实相同的,所以下面的两个函数是相同的<br />
public void SampleMethod(<strong>ref</strong> int i) {  }<br />
public void SampleMethod(out int i) {  }<br />
<br />
在使用ref或out传递数组参数时，我们也要注意：<br />
使用out传递时，在被调用方法中需要对数组进行赋值,这个是需要注意的地方；使用ref时，和上述的要求一样，需要先进行初始化，即由调用方明确赋值，所以不需要由被调用方明确赋值，请看代码：<br />
<font face="Verdana">  static void Main(string[] args)<br />
        {<br />
            string[] aa =null;//明确赋值<br />
            TestRef(ref aa);<br />
           
Console.WriteLine((aa!=null&&amp;aa.Length&gt;0)?aa[0]:"null");<br />
  <br />
        }</font><br />
<font face="Verdana"> public static void TestRef(ref string[] refTest)<br />
        {<br />
           //这里不要明确赋值<br />
            if (refTest != null)<br />
            {<br />
                if (refTest.Length &gt; 0)<br />
                {<br />
                   
refTest[0] = "A";<br />
                }<br />
            }<br />
            <br />
        }<br />
</font><br />
<font face="Verdana"> static void Main(string[] args)<br />
        {<br />
            string[] aa ;//<br />
            TestRef(out aa);<br />
           
Console.WriteLine((aa!=null&&amp;aa.Length&gt;0)?aa[0]:"null");<br />
  <br />
        }<br />
        public static void TestRef(out string[] refTest)<br />
        {<br />
           
refTest = new string[] { "a", "b", "c", "d"
}; //由于out参数不需要在传递前进行初始化，这里需要对对参数进行赋值<br />
            if (refTest != null)<br />
            {<br />
                if (refTest.Length &gt; 0)<br />
                {<br />
                   
refTest[0] = "A";<br />
                }<br />
            }<br />
         }</font><br />
<br />
使用out参数，我们可以让方法有多个返回值，如：<br />
 static void Method(<strong>out int i, out string s1, out string s2</strong>)<br />
    {<br />
        i = 44;<br />
        s1 = "I've been returned";<br />
        s2 = null;<br />
    }<br />
    static void Main()<br />
    {<br />
        int value;<br />
        string str1, str2;<br />
        Method(<strong>out value, out str1, out str2</strong>);<br />
        // value is now 44<br />
        // str1 is now "I've been returned"<br />
        // str2 is (still) null;<br />
    }<br />
<br />
<br />
params关键字：<br />
<em>params</em> 关键字可以指定在参数数目可变处采用参数的方法参数，在使用时要注意几点：<br />
1.在方法声明中的params关键字后，不允许再出现其他参数<br />
2.在方法声明中只允许使用一个params关键字<br />
</font></font></font></p>
<p><font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"> static void Main(string[] args)<br />
        {<br />
           </font><font face="Verdana"> TestParams(1, "a", "cc");//方式1<br />
            object[] obj = new object[] {1,"a","c" };//数组也可以传递过去，只要类型匹配<br />
            TestParams(obj);<br />
         }</font></font></font></font></p>
<font face="Verdana"><font face="Verdana"><font face="Verdana"><font face="Verdana"> public static void TestParams(params object[] para)<br />
        {<br />
            for (int i = 0; i &lt; para.Length; i++)<br />
            {<br />
                Console.WriteLine(para[i]);<br />
            }<br />
        }</font><br />
</font></font></font><img src ="http://www.cnblogs.com/hacker84/aggbug/1276915.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43007/" target="_blank">[新闻]为什么叫Windows 7？</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>params 关键字</title><link>http://www.cnblogs.com/hacker84/archive/2008/08/26/1276908.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Tue, 26 Aug 2008 09:58:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/08/26/1276908.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1276908.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/08/26/1276908.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1276908.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1276908.html</trackback:ping><description><![CDATA[<span style="color: rgb(0, 0, 255);">params</span><span style="color: rgb(0, 0, 0);"> 关键字在方法成员的参数列表中使用，为该方法提供了参数个数可变的能力<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />它在只能出现一次并且不能在其后再有参数定义，之前可以<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />示例：<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> System;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> System.Collections.Generic;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 0, 255);">using</span><span style="color: rgb(0, 0, 0);"> System.Text;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img id="Codehighlighter1_179_872_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_179_872_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_179_872_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_179_872_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_179_872_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_179_872_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_179_872_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_179_872_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" /> </span><span style="color: rgb(0, 0, 255);">namespace</span><span style="color: rgb(0, 0, 0);"> ConsoleApplication1</span><span id="Codehighlighter1_179_872_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_179_872_Open_Text"><span style="color: rgb(0, 0, 0);">{ <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_199_872_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_199_872_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_199_872_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_199_872_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_199_872_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_199_872_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_199_872_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_199_872_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span><span style="color: rgb(0, 0, 255);">class</span><span style="color: rgb(0, 0, 0);"> App    </span><span id="Codehighlighter1_199_872_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_199_872_Open_Text"><span style="color: rgb(0, 0, 0);">{   <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />     </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">第一个参数必须是整型，但后面的参数个数是可变的。   <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />     </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">而且由于定的是object数组，所有的数据类型都可以做为参数传入   </span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0, 0, 255);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);"> UseParams(</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);"> id, </span><span style="color: rgb(0, 0, 255);">params</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">object</span><span style="color: rgb(0, 0, 0);">[] list)    <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_353_534_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_353_534_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_353_534_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_353_534_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_353_534_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_353_534_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_353_534_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_353_534_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />    </span><span id="Codehighlighter1_353_534_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_353_534_Open_Text"><span style="color: rgb(0, 0, 0);">{      <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />      Console.WriteLine(id);     <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />       </span><span style="color: rgb(0, 0, 255);">for</span><span style="color: rgb(0, 0, 0);"> (</span><span style="color: rgb(0, 0, 255);">int</span><span style="color: rgb(0, 0, 0);"> i </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(128, 0, 128);">0</span><span style="color: rgb(0, 0, 0);">; i </span><span style="color: rgb(0, 0, 0);">&lt;</span><span style="color: rgb(0, 0, 0);"> list.Length; i</span><span style="color: rgb(0, 0, 0);">++</span><span style="color: rgb(0, 0, 0);">)      <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_456_523_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_456_523_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_456_523_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_456_523_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_456_523_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_456_523_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_456_523_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_456_523_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />       </span><span id="Codehighlighter1_456_523_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_456_523_Open_Text"><span style="color: rgb(0, 0, 0);">{            <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />       Console.WriteLine(list[i]);        <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />       }</span></span><span style="color: rgb(0, 0, 0);">    <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />    }</span></span><span style="color: rgb(0, 0, 0);">      <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img id="Codehighlighter1_571_872_Open_Image" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_571_872_Open_Text').style.display='none'; document.getElementById('Codehighlighter1_571_872_Closed_Image').style.display='inline'; document.getElementById('Codehighlighter1_571_872_Closed_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_571_872_Closed_Image" style="display: none;" onclick="this.style.display='none'; document.getElementById('Codehighlighter1_571_872_Closed_Text').style.display='none'; document.getElementById('Codehighlighter1_571_872_Open_Image').style.display='inline'; document.getElementById('Codehighlighter1_571_872_Open_Text').style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />   </span><span style="color: rgb(0, 0, 255);">static</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);"> Main()        </span><span id="Codehighlighter1_571_872_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_571_872_Open_Text"><span style="color: rgb(0, 0, 0);">{        <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />    </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">可变参数部分传入了三个参数，都是字符串类型      </span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />      UseParams(</span><span style="color: rgb(128, 0, 128);">1</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">a</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">b</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">, </span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(128, 0, 0);">c</span><span style="color: rgb(128, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">);          <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /> </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">可
变参数部分传入了四个参数，分别为字符串、整数、浮点数和双精度浮点数数
组            UseParams(2, "d", 100, 33.33, new double[] { 1.1, 2.2 });             Console.ReadLine();        }    }}</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />结果：<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(128, 0, 128);">1</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />a<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />b<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />c<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(128, 0, 128);">2</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />d<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(128, 0, 128);">100</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(128, 0, 128);">33.33</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />System.Double[] <br /></span></span></span></span><img src ="http://www.cnblogs.com/hacker84/aggbug/1276908.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43007/" target="_blank">[新闻]为什么叫Windows 7？</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>GridView中的双向排序</title><link>http://www.cnblogs.com/hacker84/archive/2008/08/14/1267934.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Thu, 14 Aug 2008 07:59:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/08/14/1267934.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1267934.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/08/14/1267934.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1267934.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1267934.html</trackback:ping><description><![CDATA[. 设置GridView 的属性　<font face="Courier New">AllowSorting="True"</font>　否则没有可排序的下横线.<br />
2. 邦定要序排的字段<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">asp:BoundField </span><span style="color: rgb(255, 0, 0);">HeaderText</span><span style="color: rgb(0, 0, 255);">="货号"</span><span style="color: rgb(255, 0, 0);"> DataField</span><span style="color: rgb(0, 0, 255);">="ch_MaterialID"</span><span style="color: rgb(255, 0, 0);"> SortExpression</span><span style="color: rgb(0, 0, 255);">="ch_MaterialID"</span><span style="color: rgb(0, 0, 255);">&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />                                </span><span style="color: rgb(0, 0, 255);">&lt;</span><span style="color: rgb(128, 0, 0);">ItemStyle </span><span style="color: rgb(255, 0, 0);">Height</span><span style="color: rgb(0, 0, 255);">="10px"</span><span style="color: rgb(255, 0, 0);"> Width</span><span style="color: rgb(0, 0, 255);">="100px"</span><span style="color: rgb(255, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">/&gt;</span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />                            </span><span style="color: rgb(0, 0, 255);">&lt;/</span><span style="color: rgb(128, 0, 0);">asp:BoundField</span><span style="color: rgb(0, 0, 255);">&gt;</span></div>
3. 写排序的事件代码:<br />
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0, 0, 0);">        </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">在排序发生前激发</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: rgb(0, 0, 0);">        </span><span style="color: rgb(0, 0, 255);">protected</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 255);">void</span><span style="color: rgb(0, 0, 0);"> GVStorageMaterial_Sorting(</span><span style="color: rgb(0, 0, 255);">object</span><span style="color: rgb(0, 0, 0);"> sender, GridViewSortEventArgs e)<br />
<img id="Codehighlighter1_116_2186_Open_Image" onclick="this.style.display='none'; Codehighlighter1_116_2186_Open_Text.style.display='none'; Codehighlighter1_116_2186_Closed_Image.style.display='inline'; Codehighlighter1_116_2186_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_116_2186_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_116_2186_Closed_Text.style.display='none'; Codehighlighter1_116_2186_Open_Image.style.display='inline'; Codehighlighter1_116_2186_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />        </span><span id="Codehighlighter1_116_2186_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_116_2186_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="color: rgb(0, 0, 255);">string</span><span style="color: rgb(0, 0, 0);"> strPage </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> e.SortExpression.ToString();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="color: rgb(0, 0, 255);">switch</span><span style="color: rgb(0, 0, 0);"> (strPage)<br />
<img id="Codehighlighter1_217_1496_Open_Image" onclick="this.style.display='none'; Codehighlighter1_217_1496_Open_Text.style.display='none'; Codehighlighter1_217_1496_Closed_Image.style.display='inline'; Codehighlighter1_217_1496_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_217_1496_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_217_1496_Closed_Text.style.display='none'; Codehighlighter1_217_1496_Open_Image.style.display='inline'; Codehighlighter1_217_1496_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif" align="top" />            </span><span id="Codehighlighter1_217_1496_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_217_1496_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="color: rgb(0, 0, 255);">case</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ch_ImageID</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">:<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                    ViewState[</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">SortOrder</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">] </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ch_ImageID</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                    </span><span style="color: rgb(0, 0, 255);">break</span><span style="color: rgb(0, 0, 0);">;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="color: rgb(0, 0, 255);">case</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ch_MaterialID</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">:<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                    ViewState[</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">SortOrder</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">] </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ch_MaterialID</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                    </span><span style="color: rgb(0, 0, 255);">break</span><span style="color: rgb(0, 0, 0);">;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                </span><span style="color: rgb(0, 0, 255);">case</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ch_MaterialName</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">:<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                    ViewState[</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">SortOrder</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">] </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">ch_MaterialName</span><span style="color: rgb(0, 0, 0);">"</span><span style="color: rgb(0, 0, 0);">;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                    </span><span style="color: rgb(0, 0, 255);">break</span><span style="color: rgb(0, 0, 0);">;<br />
</span><span style="color: rgb(0, 0, 0);"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />            }</span></span><span style="color: rgb(0, 0, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />            <br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />            </span><span style="color: rgb(0, 128, 0);">//</span><span style="color: rgb(0, 128, 0);">string sPage = e.SortExpression;</span><span style="color: rgb(0, 128, 0);"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: rgb(0, 0, 0);">            </span><span style="color: rgb(0, 0, 255);"><font face="Courier New">if (ViewState["OrderDire"] == null)<br />
            {<br />
                ViewState["OrderDire"] = "ASC";<br />
            }<br />
            if (ViewState["OrderDire"].ToString() == "ASC")<br />
                ViewState["OrderDire"] = "DESC";<br />
            else<br />
                ViewState["OrderDire"] = "ASC";<br />
            string strSQLSel = StrSqlSearch();<br />
            this.InitializeGridview(strSQLSel);<br />
</font></span><span style="color: rgb(0, 0, 0);">        }</span></span></div>
<p>4. 在显示GridView的视图中设置排序的属性.<br />
<font face="Courier New">string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];</font></p>
<div style="border: 1px solid rgb(204, 204, 204); padding: 4px 5px 4px 4px; font-size: 13px; width: 98%; background-color: rgb(238, 238, 238);"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: rgb(0, 0, 255);">bool</span><span style="color: rgb(0, 0, 0);"> flagSel </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> objDBAccess.SearchSQL(strSQLSel, </span><span style="color: rgb(0, 0, 255);">out</span><span style="color: rgb(0, 0, 0);"> objDS, </span><span style="color: rgb(0, 0, 255);">out</span><span style="color: rgb(0, 0, 0);"> strMessage);<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />            </span><span style="color: rgb(0, 0, 255);">if</span><span style="color: rgb(0, 0, 0);"> (flagSel)<br />
<img id="Codehighlighter1_113_286_Open_Image" onclick="this.style.display='none'; Codehighlighter1_113_286_Open_Text.style.display='none'; Codehighlighter1_113_286_Closed_Image.style.display='inline'; Codehighlighter1_113_286_Closed_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_113_286_Closed_Image" style="display: none;" onclick="this.style.display='none'; Codehighlighter1_113_286_Closed_Text.style.display='none'; Codehighlighter1_113_286_Open_Image.style.display='inline'; Codehighlighter1_113_286_Open_Text.style.display='inline';" alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" align="top" />            </span><span id="Codehighlighter1_113_286_Closed_Text" style="border: 1px solid rgb(128, 128, 128); display: none; background-color: rgb(255, 255, 255);"><img alt="" src="http://www.cnblogs.com/Images/dot.gif" /></span><span id="Codehighlighter1_113_286_Open_Text"><span style="color: rgb(0, 0, 0);">{<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                DataView dv</span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);">objDS.Tables[</span><span style="color: rgb(0, 0, 0);">0</span><span style="color: rgb(0, 0, 0);">].DefaultView;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                dv.Sort </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> strSort;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                GV.DataSource </span><span style="color: rgb(0, 0, 0);">=</span><span style="color: rgb(0, 0, 0);"> dv;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif" align="top" />                GV.DataBind();<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />            }</span></span></div><img src ="http://www.cnblogs.com/hacker84/aggbug/1267934.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43003/" target="_blank">[新闻]Open Source Camp 北京 2008技术交流盛会</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>jquery防止冒泡</title><link>http://www.cnblogs.com/hacker84/archive/2008/07/14/1242764.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Mon, 14 Jul 2008 10:20:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/07/14/1242764.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1242764.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/07/14/1242764.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1242764.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1242764.html</trackback:ping><description><![CDATA[<span id="loader" style="display: none;"><img alt="Loader" src="http://assets1.twitter.com/images/loader.gif?1215815556" /></span>
      

              
       

      <div id="side_base">
      
            </div><!-- /side_base -->

      
        	
          


	
	
    	
    		<p>
    		
    		  jQuery防止事件冒泡

1.防止子元素触发本事件
$(document).ready(function() { 
	$('触发事件元素').click(function(event) { 
		if (event.target == this) { 
			任何处理代码; 
		} 
	});
});

2.防止本元素触发父元素事件
$(document).ready(function(){
	$('触发事件元素').click(function(event) { 
		任何处理代码 ...
    		
    		</p><img src ="http://www.cnblogs.com/hacker84/aggbug/1242764.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43002/" target="_blank">[新闻]关于 Silverlight 2 Control Tookit 的最新消息</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>CSS form design</title><link>http://www.cnblogs.com/hacker84/archive/2008/07/08/1238028.html</link><dc:creator>looping</dc:creator><author>looping</author><pubDate>Tue, 08 Jul 2008 03:12:00 GMT</pubDate><guid>http://www.cnblogs.com/hacker84/archive/2008/07/08/1238028.html</guid><wfw:comment>http://www.cnblogs.com/hacker84/comments/1238028.html</wfw:comment><comments>http://www.cnblogs.com/hacker84/archive/2008/07/08/1238028.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/hacker84/comments/commentRss/1238028.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/hacker84/services/trackbacks/1238028.html</trackback:ping><description><![CDATA[<div id="art_content">

		<p>原文地址：<a href="http://www.sitepoint.com/article/fancy-form-design-css/1">click here</a></p>
<p>PS：原文实在是太长太长了，无奈精力有限，只能把核心给翻译了一下</p>
<p><strong>使用 Label</strong><br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_connection.png" title="forms_connection.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_connection.png" alt="forms_connection.png" width="425" /></a><br />
Label能够建立<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/form" class="st_tag internal_tag" rel="tag" title="Posts tagged with form">form</a>元素与文字说明的桥梁</p>
<div class="dean_ch" style="">
&lt;label for="firstName"&gt;First name&lt;/label&gt;<br />
&lt;input id="firstName" name="firstName" type="text" /&gt;<br />
 </div>
<p>这样点击First name文字后，就能自动激活input</p>
<p>Label可以用在以下一些内容</p>
<ul><li>checkboxes</li><li>radio buttons</li><li>textareas</li><li>text fields</li><li>select boxes</li></ul>
<p>submit 按钮 和submit 图象 不需要使用Label，因为它们有自己的value和alt</p>
<p><strong>排序相关元素</strong></p>
<p>使用fieldset可以聚合一系列相关的类别，然后通过legend加以说明</p>
<div class="dean_ch" style="">
&lt;<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/form" class="st_tag internal_tag" rel="tag" title="Posts tagged with form">form</a> action="example.php"&gt;<br />
&lt;fieldset&gt;<br />
&lt;legend&gt;Postal Address&lt;/legend&gt;  <br />
&lt;label for="street"&gt;Street address&lt;/label&gt;<br />
&lt;input id="street" name="street" type="text" /&gt;<br />
&lt;label for=" suburb"&gt;Suburb&lt;/label&gt;<br />
&lt;input id="suburb" name="suburb" type="text" /&gt;<br />
&lt;label for="state"&gt;State&lt;/label&gt;<br />
&lt;input id="state" name="state" type="text" /&gt;<br />
&lt;label for="postcode"&gt;Postcode&lt;/label&gt;<br />
&lt;input id="postcode" name="postcode" type="text" /&gt;<br />
&lt;/fieldset&gt;<br />
&lt;/<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/form" class="st_tag internal_tag" rel="tag" title="Posts tagged with form">form</a>&gt;<br />
 </div>
<p>没用<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/css" class="st_tag internal_tag" rel="tag" title="Posts tagged with CSS">CSS</a>修饰的fieldset和legend<br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_unstyled-fields.png" title="forms_unstyled-fields.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_unstyled-fields.png" alt="forms_unstyled-fields.png" width="425" /></a></p>
<p><span id="more-39"></span><br />
<strong>表单布局</strong></p>
<p>Label在表单元素的上面，可以节省横向空间<br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_position-labels-top-399.png" title="forms_position-labels-top-399.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_position-labels-top-399.png" alt="forms_position-labels-top-399.png" width="425" /></a></p>
<p>Label在表单元素的左面，左对齐<br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_position-labels-left.png" title="forms_position-labels-left.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_position-labels-left.png" alt="forms_position-labels-left.png" width="425" /></a><br />
Label在表单元素的左面，右对齐<br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_position-labels-right-399.png" title="forms_position-labels-right-399.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_position-labels-right-399.png" alt="forms_position-labels-right-399.png" width="425" /></a><br />
<strong>使用<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/css" class="st_tag internal_tag" rel="tag" title="Posts tagged with CSS">CSS</a></strong></p>
<p>在这个例子里，html大概是这样</p>
<div class="dean_ch" style="">
&lt;<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/form" class="st_tag internal_tag" rel="tag" title="Posts tagged with form">form</a> action="example.php"&gt;  <br />
&lt;fieldset&gt;  <br />
&lt;legend&gt;Contact Details&lt;/legend&gt;  <br />
&lt;ol&gt;  <br />
&lt;li&gt;  <br />
&lt;label for="name"&gt;Name:&lt;/label&gt;  <br />
&lt;input id="name" name="name" class="text" type="text" /&gt;  <br />
&lt;/li&gt;  <br />
&lt;li&gt;  <br />
&lt;label for="email"&gt;Email address:&lt;/label&gt;  <br />
&lt;input id="email" name="email" class="text" type="text" /&gt;  <br />
&lt;/li&gt;  <br />
&lt;li&gt;  <br />
&lt;label for="phone"&gt;Telephone:&lt;/label&gt;  <br />
&lt;input id="phone" name="phone" class="text" type="text" /&gt;  <br />
&lt;/li&gt;  <br />
&lt;/ol&gt;  <br />
&lt;/fieldset&gt;  <br />
&lt;fieldset&gt;  <br />
&lt;legend&gt;Delivery Address&lt;/legend&gt;  <br />
&lt;ol&gt;  <br />
&lt;li&gt;  <br />
&lt;label for="address1"&gt;Address 1:&lt;/label&gt;  <br />
&lt;input id="address1" name="address1" class="text"  <br />
type="text" /&gt;  <br />
&lt;/li&gt;  <br />
&lt;li&gt;  <br />
&lt;label for="address2"&gt;Address 2:&lt;/label&gt;  <br />
&lt;input id="address2" name="address2" class="text"  <br />
type="text" /&gt;  <br />
&lt;/li&gt;  <br />
&lt;li&gt;  <br />
&lt;label for="suburb"&gt;Suburb/Town:&lt;/label&gt;  <br />
&lt;input id="suburb" name="suburb" class="text"  <br />
type="text" /&gt;  <br />
&lt;/li&gt;  <br />
&lt;li&gt;  <br />
&lt;label for="postcode"&gt;Postcode:&lt;/label&gt;  <br />
&lt;input id="postcode" name="postcode"  <br />
class="text textSmall" type="text" /&gt;  <br />
&lt;/li&gt;<br />
 <br />
&lt;li&gt;  <br />
&lt;label for="country"&gt;Country:&lt;/label&gt;  <br />
&lt;input id="country" name="country" class="text"  <br />
type="text" /&gt;  <br />
&lt;/li&gt;  <br />
&lt;/ol&gt;  <br />
&lt;/fieldset&gt;  <br />
&lt;fieldset class="submit"&gt;  <br />
&lt;input class="submit" type="submit"  <br />
value="Begin download" /&gt;  <br />
&lt;/fieldset&gt;<br />
&lt;/<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/form" class="st_tag internal_tag" rel="tag" title="Posts tagged with form">form</a>&gt;<br />
 </div>
<p>这里用了前面提到的fieldset-legend-label组合，但是每一个元素都包含于list里，这样方便通过样式来调整。</p>
<p>没有使用<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/css" class="st_tag internal_tag" rel="tag" title="Posts tagged with CSS">css</a>的效果，也就是前面这些代码说呈现出来的<br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_unstyled-lists.png" title="forms_unstyled-lists.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_unstyled-lists.png" alt="forms_unstyled-lists.png" width="425" /></a><br />
加上<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/css" class="st_tag internal_tag" rel="tag" title="Posts tagged with CSS">css</a>来调整一下</p>
<div class="dean_ch" style="">
fieldset <span class="br0">{</span>  <br />
<span class="kw1">margin</span>: <span class="nu0">1</span><span class="re1"><span class="re3">.5em</span></span> <span class="nu0">0</span> <span class="nu0">0</span> <span class="nu0">0</span>;  <br />
<span class="kw1">padding</span>: <span class="nu0">0</span>;<br />
<span class="br0">}</span><br />
legend <span class="br0">{</span>  <br />
<span class="kw1">margin-left</span>: <span class="re3">1em</span>;  <br />
<span class="kw1">color</span>: <span class="re0">#<span class="nu0">000000</span></span>;  <br />
<span class="kw1">font-weight</span>: <span class="kw2">bold</span>;<br />
<span class="br0">}</span><br />
fieldset ol <span class="br0">{</span>  <br />
<span class="kw1">padding</span>: <span class="re3">1em</span> <span class="re3">1em</span> <span class="nu0">0</span> <span class="re3">1em</span>;  <br />
<span class="kw1">list-style</span>: <span class="kw2">none</span>;<br />
<span class="br0">}</span><br />
fieldset li <span class="br0">{</span>  <br />
<span class="kw1">padding-bottom</span>: <span class="re3">1em</span>;<br />
<span class="br0">}</span><br />
fieldset<span class="re1">.submit</span> <span class="br0">{</span>  <br />
<span class="kw1">border-style</span>: <span class="kw2">none</span>;<br />
<span class="br0">}</span><br />
 </div>
<p>这样修饰一下就好看一点了<br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_messy-399.png" title="forms_messy-399.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_messy-399.png" alt="forms_messy-399.png" width="425" /></a></p>
<p>如果使用上标签，也很简单，一句<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/css" class="st_tag internal_tag" rel="tag" title="Posts tagged with CSS">css</a>就搞定了</p>
<div class="dean_ch" style="">
label <span class="br0">{</span>  <br />
<span class="kw1">display</span>: <span class="kw2">block</span>;<br />
<span class="br0">}</span><br />
 </div>
<p>效果图<br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_neater-399.png" title="forms_neater-399.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_neater-399.png" alt="forms_neater-399.png" width="425" /></a></p>
<p><strong>标签左对齐</strong></p>
<p>可以简单的设置float left</p>
<div class="dean_ch" style="">
label <span class="br0">{</span>  <br />
<span class="kw1">float</span>: <span class="kw1">left</span>;  <br />
<span class="kw1">width</span>: <span class="re3">10em</span>;  <br />
<span class="kw1">margin-right</span>: <span class="re3">1em</span>;<br />
<span class="br0">}</span><br />
 </div>
<p><a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_wrapped-label.png" title="forms_wrapped-label.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_wrapped-label.png" alt="forms_wrapped-label.png" width="425" /></a><br />
但是出现了一个问题，list本身不会因为label的高度增加而增加，使用背景色以便更清楚地观察<br />
<a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_wrapped-label-floated.png" title="forms_wrapped-label-floated.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_wrapped-label-floated.png" alt="forms_wrapped-label-floated.png" width="425" /></a></p>
<p>解决办法是对父元素也使用左对齐</p>
<div class="dean_ch" style="">
left-aligned-labels<span class="re1">.<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/css" class="st_tag internal_tag" rel="tag" title="Posts tagged with CSS">css</a></span> <span class="br0">(</span>excerpt<span class="br0">)</span><br />
fieldset li <span class="br0">{</span>  <br />
<span class="kw1">float</span>: <span class="kw1">left</span>;  <br />
<span class="kw1">clear</span>: <span class="kw1">left</span>;  <br />
<span class="kw1">width</span>: <span class="re3"><span class="nu0">100</span>%</span>;  <br />
<span class="kw1">padding-bottom</span>: <span class="re3">1em</span>;<br />
<span class="br0">}</span><br />
 </div>
<p>这些参数都比较讲究，具体可以修改相应值，来看看效果</p>
<p>设置label（左对齐）</p>
<div class="dean_ch" style="">
left-aligned-labels<span class="re1">.<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/css" class="st_tag internal_tag" rel="tag" title="Posts tagged with CSS">css</a></span> <span class="br0">(</span>excerpt<span class="br0">)</span><br />
fieldset<span class="re1">.submit</span> <span class="br0">{</span>  <br />
<span class="kw1">float</span>: <span class="kw2">none</span>;  <br />
<span class="kw1">width</span>: <span class="kw2">auto</span>;  <br />
<span class="kw1">border</span>: <span class="nu0">0</span> <span class="kw2">none</span> <span class="re0">#FFF</span>;  <br />
<span class="kw1">padding-left</span>: <span class="re3">12em</span>;<br />
<span class="br0">}</span><br />
 </div>
<p><a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_left-aligned-399.png" title="forms_left-aligned-399.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_left-aligned-399.png" alt="forms_left-aligned-399.png" width="425" /></a></p>
<p>设置label（右对齐）</p>
<div class="dean_ch" style="">
right-aligned-labels<span class="re1">.<a href="http://www.live-my-life-with-yuyi.com/blog/archives/tag/css" class="st_tag internal_tag" rel="tag" title="Posts tagged with CSS">css</a></span> <span class="br0">(</span>excerpt<span class="br0">)</span><br />
label <span class="br0">{</span>  <br />
<span class="kw1">float</span>: <span class="kw1">left</span>;  <br />
<span class="kw1">width</span>: <span class="re3">10em</span>;  <br />
<span class="kw1">margin-right</span>: <span class="re3">1em</span>;  <br />
<span class="kw1">text-align</span>: <span class="kw1">right</span>;<br />
<span class="br0">}</span><br />
 </div>
<p><a href="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_right-aligned-399.png" title="forms_right-aligned-399.png"><img style="" src="http://www.live-my-life-with-yuyi.com/blog/wp-content/uploads/2007/06/forms_right-aligned-399.png" alt="forms_right-aligned-399.png" width="425" /></a></p>
<p><strong>设置fieldset和legend的样式</strong></p>
<p>很少见到没有修饰的fieldset和legend，但如果为