<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>金沙水拍云崖暖 - WEB程序开发</title>
		<link>http://Lixf.net/</link>
		<description>转载是种美德...</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Tue, 07 Sep 2010 10:42:38 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=1002</guid>
			<title>GridView的清空数据</title>
			<author>Calchas</author>
			<description><![CDATA[<p>有时候需要清空GridView的数据，填充新的数据。<br />
<br />
可以用GridView1.DataSource =  null;<br />
去除数据，重新绑定数据源。即可！</p>
<div class="codeText">
<div class="codeHead">C#代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="keyword">this</span><span>.GridView1.DataSource&nbsp;=&nbsp;</span><span class="keyword">null</span><span>;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">this</span><span>.GridView1.DataBind();&nbsp;&nbsp;</span></span></li>
</ol>
</div>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=1002</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2010-06-22 10:49</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=990</guid>
			<title>SqlDataSourceCommandEventArgs 类在 SqlDataSource控件中的应用</title>
			<author>Calchas</author>
			<description><![CDATA[<p>MSDN说明：<br />
因为 SqlDataSourceCommandEventArgs 类是从 CancelEventArgs 类派生的，所以可以通过将</p>
<p>Cancel 属性设置为 true，取消挂起的 SqlDataSource 数据库命令。通过访问由 Command 属</p>
<p>性公开的 DbCommand 对象，可以在运行此命令之前，检查和操作 CommandText、Parameters</p>
<p>集合以及其他命令属性。</p>
<p>OnUpdating、OnInserting 和 OnDeleting 方法使用 SqlDataSourceCommandEventArgs 类，以</p>
<p>在运行 SqlDataSource 数据库命令前提供对此命令的访问。SqlDataSource 控件公开了许多事</p>
<p>件，可处理这些事件以在数据操作过程中使用基础数据对象。下表列出了这些事件、关联的</p>
<p>EventArgs 和事件处理程序类，以更好地引导您使用各种与使用 SqlDataSource 控件的数据操</p>
<p>作的生存期相对应的事件。<br />
示例一：<br />
MSDN的updating/updated事件片段<br />
该示例演示，当使用 SqlDataSource 控件更新数据时，如何使用 DbTransaction 对象来添加</p>
<p>事务上下文。<br />
private void OnSqlUpdating(Object source, SqlDataSourceCommandEventArgs e) {<br />
DbCommand command = e.Command;<br />
DbConnection cx  = command.Connection;<br />
cx.Open();<br />
DbTransaction tx = cx.BeginTransaction();<br />
command.Transaction = tx;<br />
}</p>
<p>private void OnSqlUpdated(Object source, SqlDataSourceStatusEventArgs e) {<br />
DbCommand command = e.Command;<br />
DbTransaction tx = command.Transaction;</p>
<p>// In this code example the OtherProcessSucceeded variable represents<br />
// the outcome of some other process that occurs whenever the data is<br />
// updated, and must succeed for the data change to be committed. For<br />
// simplicity, we set this value to true.<br />
bool OtherProcessSucceeded = true;</p>
<p>if (OtherProcessSucceeded) {<br />
tx.Commit();<br />
Label2.Text=&rdquo;The record was updated successfully!&rdquo;;<br />
}<br />
else {<br />
tx.Rollback();<br />
Label2.Text=&rdquo;The record was not updated.&rdquo;;<br />
}<br />
}<br />
示例二：数据插入过程中更改数据<br />
//根据   @slevel传递来的数据，改变@fk参数中的数据<br />
protected void SqlDataSource_Inserting(object sender, SqlDataSourceCommandEventArgs e)<br />
{<br />
//@slevel为Sql语句中参数<br />
if (e.Command.Parameters[&quot;@slevel&quot;].Value == &ldquo;C级&rdquo;)<br />
e.Command.Parameters[&quot;@FK&quot;].Value = 30;<br />
}<br />
示例三：取消删除<br />
protected void SqlDataSource_Deleting(object sender, SqlDataSourceCommandEventArgs e)<br />
{<br />
if (e.Command.Parameters[&quot;@输入日期&quot;].Value == null)<br />
e.Cancel = true;<br />
}</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=990</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-08-20 08:40</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=988</guid>
			<title>磁盘空间不足</title>
			<author>Calchas</author>
			<description><![CDATA[<p><em><span id="ctl00_CphContent_LblSource">在&nbsp;System.IO.__Error.WinIOError(Int32&nbsp;errorCode,&nbsp;String&nbsp;maybeFullPath)<br />
在&nbsp;System.IO.FileStream.Init(String&nbsp;path,&nbsp;FileMode&nbsp;mode,&nbsp;FileAccess&nbsp;access,&nbsp;Int32&nbsp;rights,&nbsp;Boolean&nbsp;useRights,&nbsp;FileShare&nbsp;share,&nbsp;Int32&nbsp;bufferSize,&nbsp;FileOptions&nbsp;options,&nbsp;SECURITY_ATTRIBUTES&nbsp;secAttrs,&nbsp;String&nbsp;msgPath,&nbsp;Boolean&nbsp;bFromProxy)<br />
在&nbsp;System.IO.FileStream..ctor(String&nbsp;path,&nbsp;FileMode&nbsp;mode)<br />
在&nbsp;System.Web.HttpPostedFile.SaveAs(String&nbsp;filename)<br />
在&nbsp;System.Web.UI.WebControls.FileUpload.SaveAs(String&nbsp;filename)<br />
在&nbsp;PowerEasy.SiteFactory.WebSite.Admin.Accessories.FileUpload.BtnUpload_Click(Object&nbsp;sender,&nbsp;EventArgs&nbsp;e)<br />
在&nbsp;System.Web.UI.WebControls.Button.OnClick(EventArgs&nbsp;e)<br />
在&nbsp;System.Web.UI.WebControls.Button.RaisePostBackEvent(String&nbsp;eventArgument)<br />
在&nbsp;System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String&nbsp;eventArgument)<br />
在&nbsp;System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler&nbsp;sourceControl,&nbsp;String&nbsp;eventArgument)<br />
在&nbsp;System.Web.UI.Page.RaisePostBackEvent(NameValueCollection&nbsp;postData)<br />
在&nbsp;System.Web.UI.Page.ProcessRequestMain(Boolean&nbsp;includeStagesBeforeAsyncPoint,&nbsp;Boolean&nbsp;includeStagesAfterAsyncPoint)<br />
<br />
</span></em>解决过程：<br />
检查磁盘空间剩余量大于1G<br />
发现程序所在磁盘为NETWORK SERVICE的配额最大只有50M，而相关文件夹也是在50M，调整此配置，问题解决。</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=988</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-08-20 08:39</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=987</guid>
			<title>HTML表单通过 AJAX 向.NET提交数据(包含下拉框、单选框)</title>
			<author>Calchas</author>
			<description><![CDATA[<p>X.ASPX</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml">
    <li class="alt"><span><span>&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN&quot;&nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">html</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">&quot;http://www.w3.org/1999/xhtml&quot;</span><span>&nbsp;</span><span class="attribute">lang</span><span>=</span><span class="attribute-value">&quot;UTF-8&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">meta</span><span>&nbsp;</span><span class="attribute">http-equiv</span><span>=</span><span class="attribute-value">&quot;Content-Type&quot;</span><span>&nbsp;</span><span class="attribute">content</span><span>=</span><span class="attribute-value">&quot;text/html;&nbsp;charset=UTF-8&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>AJAX</span><span class="tag">&lt;/</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">script</span><span>&nbsp;</span><span class="attribute">language</span><span>=</span><span class="attribute-value">&quot;javascript&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text/javascript&quot;</span><span class="tag">&gt;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>function&nbsp;$(objName){ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;if(document.getElementById){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;eval('document.getElementById(&quot;'&nbsp;+&nbsp;objName&nbsp;+&nbsp;'&quot;)'); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}else&nbsp;if(document.layers){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;eval(&quot;document.layers['&quot;&nbsp;+&nbsp;objName&nbsp;+&quot;']&quot;); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}else{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;eval('document.all.'&nbsp;+&nbsp;objName); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li><span>var&nbsp;</span><span class="attribute">xmlHttp</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">false</span><span>;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>try&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xmlHttp</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">new</span><span>&nbsp;ActiveXObject(&quot;MSXML2.XMLHTTP&quot;);&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>catch&nbsp;(e)&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xmlHttp</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">new</span><span>&nbsp;ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(e2) &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xmlHttp</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">false</span><span>;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>if&nbsp;(!xmlHttp&nbsp;&amp;&amp;&nbsp;typeof&nbsp;XMLHttpRequest&nbsp;!=&nbsp;'undefined')&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xmlHttp</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">new</span><span>&nbsp;XMLHttpRequest();&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>}&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>function&nbsp;SendData(){ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="attribute">myxml</span><span>&nbsp;=&nbsp;&quot;</span><span class="tag">&lt;?</span><span class="tag-name">xml</span><span>&nbsp;version=\&quot;</span><span class="attribute-value">1</span><span>.0\&quot;</span><span class="tag">?&gt;</span><span class="tag">&lt;</span><span class="tag-name">CollegeApply</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">Personal</span><span class="tag">&gt;</span><span>&quot;; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;myxml&nbsp;+=&nbsp;&quot;</span><span class="tag">&lt;</span><span class="tag-name">loginedusername</span><span class="tag">&gt;</span><span>&quot;+&nbsp;$(&quot;loginedusername&quot;).value&nbsp;+&quot;</span><span class="tag">&lt;/</span><span class="tag-name">loginedusername</span><span class="tag">&gt;</span><span>&quot;; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;myxml&nbsp;+=&nbsp;&quot;</span><span class="tag">&lt;</span><span class="tag-name">howtoknow</span><span class="tag">&gt;</span><span>&quot;+&nbsp;$(&quot;txthowtoknow&quot;).options[$(&quot;txthowtoknow&quot;).selectedIndex].value&nbsp;+&quot;</span><span class="tag">&lt;/</span><span class="tag-name">howtoknow</span><span class="tag">&gt;</span><span>&quot;;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;myxml&nbsp;+=&nbsp;&quot;</span><span class="tag">&lt;</span><span class="tag-name">otherway</span><span class="tag">&gt;</span><span>&quot;+GetRadioValue(&quot;txtotherway&quot;)+&quot;</span><span class="tag">&lt;/</span><span class="tag-name">otherway</span><span class="tag">&gt;</span><span>&quot;; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;myxml&nbsp;+=&nbsp;&quot;</span><span class="tag">&lt;/</span><span class="tag-name">Personal</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">CollegeApply</span><span class="tag">&gt;</span><span>&quot;; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.open(&quot;POST&quot;,&quot;/WebHandler/x.ashx?</span><span class="attribute">type</span><span>=</span><span class="attribute-value">personal</span><span>&quot;,false); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">xmlHttp.onreadystatechange</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">function</span><span>()&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(xmlHttp.readyState&nbsp;</span><span class="tag">&lt;</span><span>&nbsp;</span><span class="tag-name">4</span><span>)&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">cname.innerHTML</span><span>=</span><span class="attribute-value">&quot;loading...&quot;</span><span>;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(</span><span class="attribute">xmlHttp.readyState</span><span>&nbsp;==&nbsp;4)&nbsp;{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;</span><span class="attribute">response</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">xmlHttp</span><span>.responseText;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">cname.innerHTML</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">response</span><span>;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;xmlHttp.send(myxml);&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;//alert(xmlHttp.responseText); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;false; &nbsp;&nbsp;</span></li>
    <li><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>function&nbsp;GetRadioValue(RadioName){&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;obj; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="attribute">obj</span><span>=</span><span class="attribute-value">document</span><span>.getElementsByName(RadioName);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;if(obj!=null){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;i; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(</span><span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;i</span><span class="tag">&lt;</span><span class="tag-name">obj.length</span><span>;i++){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(obj[i].checked){ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;obj[i].value; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;null; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp; &nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;/</span><span class="tag-name">head</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">form</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;form1&quot;</span><span>&nbsp;</span><span class="attribute">action</span><span>=</span><span class="attribute-value">&quot;#&quot;</span><span>&nbsp;</span><span class="attribute">method</span><span>=</span><span class="attribute-value">&quot;post&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">ul</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">li</span><span class="tag">&gt;</span><span>当前登陆用户</span><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;hidden&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;loginedusername&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;admin&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span class="tag">&lt;/</span><span class="tag-name">li</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">li</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;right&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">select</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;txthowtoknow&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">option</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;谷歌（Google）&quot;</span><span>&nbsp;</span><span class="attribute">selected</span><span>=</span><span class="attribute-value">&quot;selected&quot;</span><span class="tag">&gt;</span><span>谷歌（Google）</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">option</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;雅虎（Yahoo）&quot;</span><span class="tag">&gt;</span><span>雅虎（Yahoo）</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">option</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;百度（Baidu）&quot;</span><span class="tag">&gt;</span><span>百度（Baidu）</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">option</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;搜狐&quot;</span><span class="tag">&gt;</span><span>搜狐</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">option</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;网络新闻&quot;</span><span class="tag">&gt;</span><span>网络新闻</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">option</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;论坛帖子&quot;</span><span class="tag">&gt;</span><span>论坛帖子</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">option</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;其他网站的链接&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>其他网站的链接</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">option</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;朋友介绍&quot;</span><span class="tag">&gt;</span><span>朋友介绍</span><span class="tag">&lt;/</span><span class="tag-name">option</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;/</span><span class="tag-name">select</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">li</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">li</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;right&quot;</span><span class="tag">&gt;</span><span>你有没有曾经使用别名或者旧护照进入新加坡？ &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;radio&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;txtotherway1&quot;</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;txtotherway&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;有&quot;</span><span>&nbsp;&nbsp;</span><span class="tag">/&gt;</span><span>有 &nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;radio&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;txtotherway2&quot;</span><span>&nbsp;</span><span class="attribute">name</span><span>=</span><span class="attribute-value">&quot;txtotherway&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;没有&quot;</span><span>&nbsp;checked&nbsp;</span><span class="tag">/&gt;</span><span>没有 &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;/</span><span class="tag-name">li</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;</span><span class="tag-name">li</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;submit&quot;</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;btnsubmit&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;提交&quot;</span><span>&nbsp;</span><span class="attribute">onclick</span><span>=</span><span class="attribute-value">&quot;return&nbsp;SendData();&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">li</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;/</span><span class="tag-name">ul</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;/</span><span class="tag-name">form</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;/</span><span class="tag-name">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>x.ashx</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">C#代码</div>
<ol class="dp-c">
    <li class="alt"><span><span>&lt;%@&nbsp;WebHandler&nbsp;Language=</span><span class="string">&quot;C#&quot;</span><span>&nbsp;Class=</span><span class="string">&quot;CollegeApply&quot;</span><span>&nbsp;%&gt; &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">using</span><span>&nbsp;System; &nbsp;&nbsp;</span></li>
    <li><span class="keyword">using</span><span>&nbsp;System.Web; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">using</span><span>&nbsp;System.Xml; &nbsp;&nbsp;</span></li>
    <li><span class="keyword">using</span><span>&nbsp;System.IO; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">using</span><span>&nbsp;System.Text; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">class</span><span>&nbsp;CollegeApply&nbsp;:&nbsp;IHttpHandler&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;ProcessRequest&nbsp;(HttpContext&nbsp;context)&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.ContentType&nbsp;=&nbsp;</span><span class="string">&quot;text/plain&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">string</span><span>&nbsp;RequestType&nbsp;=&nbsp;context.Request.QueryString[</span><span class="string">&quot;type&quot;</span><span>].ToString(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(RequestType&nbsp;==&nbsp;</span><span class="string">&quot;personal&quot;</span><span>) &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Encoding&nbsp;encode&nbsp;=&nbsp;Encoding.GetEncoding(</span><span class="string">&quot;utf-8&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StreamReader&nbsp;sr&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;StreamReader(context.Request.InputStream,&nbsp;encode); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Char[]&nbsp;read&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;Char[1024]; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">int</span><span>&nbsp;count&nbsp;=&nbsp;sr.Read(read,&nbsp;0,&nbsp;1024); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;str&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;sXML&nbsp;=&nbsp;</span><span class="keyword">null</span><span>; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sXML&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span>&nbsp;(count&nbsp;&gt;&nbsp;0) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;str&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;String(read,&nbsp;0,&nbsp;count); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sXML&nbsp;=&nbsp;sXML&nbsp;+&nbsp;str; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;=&nbsp;sr.Read(read,&nbsp;0,&nbsp;1024); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlDocument&nbsp;document&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;XmlDocument(); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.LoadXml(sXML); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlNode&nbsp;rootNode&nbsp;=&nbsp;document.DocumentElement; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">string</span><span>&nbsp;loginedusername&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">try</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loginedusername&nbsp;=&nbsp;rootNode.FirstChild.SelectNodes(</span><span class="string">&quot;loginedusername&quot;</span><span>).Item(0).InnerText.ToString(); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">string</span><span>&nbsp;howtoknow&nbsp;=&nbsp;rootNode.FirstChild.SelectNodes(</span><span class="string">&quot;howtoknow&quot;</span><span>).Item(0).InnerText.ToString(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">string</span><span>&nbsp;otherway&nbsp;=&nbsp;rootNode.FirstChild.SelectNodes(</span><span class="string">&quot;otherway&quot;</span><span>).Item(0).InnerText.ToString(); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="comment">//此处忽略执行SQL语句，直接输出 </span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.Write(</span><span class="string">&quot;已经更新资料；用户名：&quot;</span><span>&nbsp;+&nbsp;loginedusername&nbsp;+&nbsp;</span><span class="string">&quot;&nbsp;如何知道我们的：&quot;</span><span>&nbsp;&nbsp;+&nbsp;howtoknow&nbsp;+&nbsp;</span><span class="string">&quot;&nbsp;其他途径：&quot;</span><span>&nbsp;+&nbsp;otherway&nbsp;); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">catch</span><span>&nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">public</span><span>&nbsp;</span><span class="keyword">bool</span><span>&nbsp;IsReusable&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">get</span><span>&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">false</span><span>; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=987</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-07-16 09:12</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=982</guid>
			<title>编译器错误信息: CS0016: 未能写入输出文件</title>
			<author>Calchas</author>
			<description><![CDATA[<h2><em>编译错误</em></h2>
<p><font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "><strong>说明: </strong>在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 <br />
<br />
<strong>编译器错误信息: </strong>CS0016: 未能写入输出文件&ldquo;c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\d5ed7960\90f6b658\en-us\App_GlobalResources.gsyxhw8p.resources.dll&rdquo;--&ldquo;拒绝访问。 &rdquo;</font></p>
<p>&nbsp;</p>
<p><strong><u><font style="background-color: #333300" color="#ffff99">&nbsp;这个问题的解决方法，其实很简单，只要在windows/temp权限设置里面把Network service（如果是win2000则是asp.net用户）的权限加上就行</font></u></strong></p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=982</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-06-25 14:43</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=980</guid>
			<title>关于DropDownList、RadioButtonList和CheckBoxList绑定</title>
			<author>Calchas</author>
			<description><![CDATA[<p><br />
<br />
<br />
一、DropDownList:<br />
1、选项值保存到数据库：<br />
&nbsp;&nbsp; Hashtable ht=new Hashtable();//这里用Hashtable<br />
&nbsp;&nbsp; ht.Add(&quot;字段名&quot;，DropDownListID.SelectedItem.Text.ToString());//保存选项Text<br />
&nbsp;&nbsp; ht.Add(&quot;字段名&quot;，DropDownListID.SelectedItem.Value.ToString());//保存选项Value<br />
<br />
2、选项值由数据库绑定到DropDownList：<br />
&nbsp;&nbsp; 首先DropDownListID.ClearSelection();//清除选项<br />
&nbsp;&nbsp;&nbsp; DropDownListID.Items.FindByText(dr[&quot;字段名&quot;].ToString()).Selected = true;//选项Text<br />
&nbsp;&nbsp;&nbsp; DropDownListID.Items.FindByValue(dr[&quot;字段名&quot;].ToString()).Selected = true;//选项Value<br />
<br />
二、RadioButtonList:<br />
1、选项值保存到数据库(同DropDownList)：<br />
&nbsp;&nbsp; Hashtable ht=new Hashtable();//这里用Hashtable<br />
&nbsp;&nbsp; ht.Add(&quot;字段名&quot;，RadioButtonListID.SelectedItem.Text.ToString());//保存选项Text<br />
&nbsp;&nbsp; ht.Add(&quot;字段名&quot;，RadioButtonListID.SelectedItem.Value.ToString());//保存选项Value<br />
<br />
2、选项值由数据库绑定到RadioButtonList<br />
&nbsp;&nbsp; string SelectItem = dr[&quot;字段名&quot;].ToString();//将数据库中的选项值从DataRow中读出赋给变量SelectItem<br />
&nbsp;&nbsp; for (int i = 0; i &lt; RadioButtonListID.Items.Count; i++)<br />
&nbsp;&nbsp; {//用for循环判断那项被选种<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (RadioButtonListID.Items[i].Text == SelectItem)RadioButtonListID.Items[i].Selected = true;<br />
&nbsp;&nbsp; }<br />
<br />
三、CheckBoxList:<br />
1、选项值保存到数据库<br />
&nbsp;&nbsp; string SelectItem = &quot;&quot;;//声明一个变量来接受选项<br />
&nbsp;&nbsp; for (int i = 0; i &lt; CheckBoxListID.Items.Count; i++)<br />
&nbsp;&nbsp; {//用for循环将所有选项用&quot;,&quot;隔开连接起来<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (CheckBoxListID.Items[i].Selected)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SelectItem = SelectItem + CheckBoxListID.Items[i].Value + &quot;,&quot;;//选项后加&quot;,&quot;隔开<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; ht.Add(&quot;字段名&quot;,SelectItem.ToString());<br />
<br />
2、选项值由数据库绑定到CheckBoxList<br />
&nbsp;&nbsp; string SelectItem = dr[&quot;字段名&quot;].ToString();<br />
&nbsp;&nbsp; string[] arrStr = SelectItem.Split(',');//字段是以&quot;,&quot;隔开<br />
&nbsp;&nbsp; foreach (string str in arrStr)<br />
&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt;CheckBoxListID.Items.Count; i++)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this.CheckBoxListID.Items[i].Value == str)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; this.CheckBoxListID.Items[i].Selected = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp; }</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=980</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-06-05 13:53</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=978</guid>
			<title>获取 FormView 编辑模板中的控件</title>
			<author>Calchas</author>
			<description><![CDATA[<p>如果页面里面有一个 FormView ， 里面编辑模式下有一个TextBox 控件 txtMajor, 如果想在CS文件中对其赋值的话。</p>
<p>单纯使用 this.txtMajor.Text = &quot;&quot;; 这样是不行的，会提示找不到 txtMajor 此名称的控件。</p>
<p><em><strong>编译器错误消息: </strong>CS0117: &ldquo;Index&rdquo;并不包含&ldquo;txtMajor</em><em>&rdquo;的定义</em></p>
<p>解决办法是：</p>
<p><br />
TextBox txtMajor = (TextBox)fvPlanInfo.FindControl(&quot;txtMajor&quot;);</p>
<p>txtMajor= &quot;&quot;;</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=978</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-05-19 12:52</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=977</guid>
			<title>ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序</title>
			<author>Calchas</author>
			<description><![CDATA[<p>用C#+ODBC做的BS系统,在VS2005里面调试没有问题,但是发布后就会出现&quot;<em><span style="color: rgb(153, 51, 0);">ERROR [IM002] [Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序</span></em>&quot;的错误,问题在于DSN建立的类型不对.</p>
<p>在&quot;ODBC数据源管理器&quot;中，设置用于连接数据库的DSN有三种: 用户DSN、系统DSN和文件DSN.</p>
<p>IIS是系统级的NT服务,因此无法访问&quot;用户DNS&quot;建立的数据源,应当改成&quot;系统DNS&quot;.</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=977</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-04-24 12:59</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=976</guid>
			<title>asp.net PostedFile.ContentType的所有类型</title>
			<author>Calchas</author>
			<description><![CDATA[<p><br />
<br />
&nbsp;<br />
按字母排序<br />
&quot;.*&quot;=&quot;application/octet-stream&quot;<br />
&quot;.001&quot;=&quot;application/x-001&quot;<br />
&quot;.301&quot;=&quot;application/x-301&quot;<br />
&quot;.323&quot;=&quot;text/h323&quot;<br />
&quot;.906&quot;=&quot;application/x-906&quot;<br />
&quot;.907&quot;=&quot;drawing/907&quot;<br />
&quot;.a11&quot;=&quot;application/x-a11&quot;<br />
&quot;.acp&quot;=&quot;audio/x-mei-aac&quot;<br />
&quot;.ai&quot;=&quot;application/postscript&quot;<br />
&quot;.aif&quot;=&quot;audio/aiff&quot;<br />
&quot;.aifc&quot;=&quot;audio/aiff&quot;<br />
&quot;.aiff&quot;=&quot;audio/aiff&quot;<br />
&quot;.anv&quot;=&quot;application/x-anv&quot;<br />
&quot;.asa&quot;=&quot;text/asa&quot;<br />
&quot;.asf&quot;=&quot;video/x-ms-asf&quot;<br />
&quot;.asp&quot;=&quot;text/asp&quot;<br />
&quot;.asx&quot;=&quot;video/x-ms-asf&quot;<br />
&quot;.au&quot;=&quot;audio/basic&quot;<br />
&quot;.avi&quot;=&quot;video/avi&quot;<br />
&quot;.awf&quot;=&quot;application/vnd.adobe.workflow&quot;<br />
&quot;.biz&quot;=&quot;text/xml&quot;<br />
&quot;.bmp&quot;=&quot;application/x-bmp&quot;<br />
&quot;.bot&quot;=&quot;application/x-bot&quot;<br />
&quot;.c4t&quot;=&quot;application/x-c4t&quot;<br />
&quot;.c90&quot;=&quot;application/x-c90&quot;<br />
&quot;.cal&quot;=&quot;application/x-cals&quot;<br />
&quot;.cat&quot;=&quot;application/vnd.ms-pki.seccat&quot;<br />
&quot;.cdf&quot;=&quot;application/x-netcdf&quot;<br />
&quot;.cdr&quot;=&quot;application/x-cdr&quot;<br />
&quot;.cel&quot;=&quot;application/x-cel&quot;<br />
&quot;.cer&quot;=&quot;application/x-x509-ca-cert&quot;<br />
&quot;.cg4&quot;=&quot;application/x-g4&quot;<br />
&quot;.cgm&quot;=&quot;application/x-cgm&quot;<br />
&quot;.cit&quot;=&quot;application/x-cit&quot;<br />
&quot;.class&quot;=&quot;java/*&quot;<br />
&quot;.cml&quot;=&quot;text/xml&quot;<br />
&quot;.cmp&quot;=&quot;application/x-cmp&quot;<br />
&quot;.cmx&quot;=&quot;application/x-cmx&quot;<br />
&quot;.cot&quot;=&quot;application/x-cot&quot;<br />
&quot;.crl&quot;=&quot;application/pkix-crl&quot;<br />
&quot;.crt&quot;=&quot;application/x-x509-ca-cert&quot;<br />
&quot;.csi&quot;=&quot;application/x-csi&quot;<br />
&quot;.css&quot;=&quot;text/css&quot;<br />
&quot;.cut&quot;=&quot;application/x-cut&quot;<br />
&quot;.dbf&quot;=&quot;application/x-dbf&quot;<br />
&quot;.dbm&quot;=&quot;application/x-dbm&quot;<br />
&quot;.dbx&quot;=&quot;application/x-dbx&quot;<br />
&quot;.dcd&quot;=&quot;text/xml&quot;<br />
&quot;.dcx&quot;=&quot;application/x-dcx&quot;<br />
&quot;.der&quot;=&quot;application/x-x509-ca-cert&quot;<br />
&quot;.dgn&quot;=&quot;application/x-dgn&quot;<br />
&quot;.dib&quot;=&quot;application/x-dib&quot;<br />
&quot;.dll&quot;=&quot;application/x-msdownload&quot;<br />
&quot;.doc&quot;=&quot;application/msword&quot;<br />
&quot;.dot&quot;=&quot;application/msword&quot;<br />
&quot;.drw&quot;=&quot;application/x-drw&quot;<br />
&quot;.dtd&quot;=&quot;text/xml&quot;<br />
&quot;.dwf&quot;=&quot;Model/vnd.dwf&quot;<br />
&quot;.dwf&quot;=&quot;application/x-dwf&quot;<br />
&quot;.dwg&quot;=&quot;application/x-dwg&quot;<br />
&quot;.dxb&quot;=&quot;application/x-dxb&quot;<br />
&quot;.dxf&quot;=&quot;application/x-dxf&quot;<br />
&quot;.edn&quot;=&quot;application/vnd.adobe.edn&quot;<br />
&quot;.emf&quot;=&quot;application/x-emf&quot;<br />
&quot;.eml&quot;=&quot;message/rfc822&quot;<br />
&quot;.ent&quot;=&quot;text/xml&quot;<br />
&quot;.epi&quot;=&quot;application/x-epi&quot;<br />
&quot;.eps&quot;=&quot;application/x-ps&quot;<br />
&quot;.eps&quot;=&quot;application/postscript&quot;<br />
&quot;.etd&quot;=&quot;application/x-ebx&quot;<br />
&quot;.exe&quot;=&quot;application/x-msdownload&quot;<br />
&quot;.fax&quot;=&quot;image/fax&quot;<br />
&quot;.fdf&quot;=&quot;application/vnd.fdf&quot;<br />
&quot;.fif&quot;=&quot;application/fractals&quot;<br />
&quot;.fo&quot;=&quot;text/xml&quot;<br />
&quot;.frm&quot;=&quot;application/x-frm&quot;<br />
&quot;.g4&quot;=&quot;application/x-g4&quot;<br />
&quot;.gbr&quot;=&quot;application/x-gbr&quot;<br />
&quot;.gcd&quot;=&quot;application/x-gcd&quot;<br />
&quot;.gif&quot;=&quot;image/gif&quot;<br />
&quot;.gl2&quot;=&quot;application/x-gl2&quot;<br />
&quot;.gp4&quot;=&quot;application/x-gp4&quot;<br />
&quot;.hgl&quot;=&quot;application/x-hgl&quot;<br />
&quot;.hmr&quot;=&quot;application/x-hmr&quot;<br />
&quot;.hpg&quot;=&quot;application/x-hpgl&quot;<br />
&quot;.hpl&quot;=&quot;application/x-hpl&quot;<br />
&quot;.hqx&quot;=&quot;application/mac-binhex40&quot;<br />
&quot;.hrf&quot;=&quot;application/x-hrf&quot;<br />
&quot;.hta&quot;=&quot;application/hta&quot;<br />
&quot;.htc&quot;=&quot;text/x-component&quot;<br />
&quot;.htm&quot;=&quot;text/html&quot;<br />
&quot;.html&quot;=&quot;text/html&quot;<br />
&quot;.htt&quot;=&quot;text/webviewhtml&quot;<br />
&quot;.htx&quot;=&quot;text/html&quot;<br />
&quot;.icb&quot;=&quot;application/x-icb&quot;<br />
&quot;.ico&quot;=&quot;image/x-icon&quot;<br />
&quot;.ico&quot;=&quot;application/x-ico&quot;<br />
&quot;.iff&quot;=&quot;application/x-iff&quot;<br />
&quot;.ig4&quot;=&quot;application/x-g4&quot;<br />
&quot;.igs&quot;=&quot;application/x-igs&quot;<br />
&quot;.iii&quot;=&quot;application/x-iphone&quot;<br />
&quot;.img&quot;=&quot;application/x-img&quot;<br />
&quot;.ins&quot;=&quot;application/x-internet-signup&quot;<br />
&quot;.isp&quot;=&quot;application/x-internet-signup&quot;<br />
&quot;.IVF&quot;=&quot;video/x-ivf&quot;<br />
&quot;.java&quot;=&quot;java/*&quot;<br />
&quot;.jfif&quot;=&quot;image/jpeg&quot;<br />
&quot;.jpe&quot;=&quot;image/jpeg&quot;<br />
&quot;.jpe&quot;=&quot;application/x-jpe&quot;<br />
&quot;.jpeg&quot;=&quot;image/jpeg&quot;<br />
&quot;.jpg&quot;=&quot;application/x-jpg&quot;<br />
&quot;.js&quot;=&quot;application/x-javascript&quot;<br />
&quot;.jsp&quot;=&quot;text/html&quot;<br />
&quot;.la1&quot;=&quot;audio/x-liquid-file&quot;<br />
&quot;.lar&quot;=&quot;application/x-laplayer-reg&quot;<br />
&quot;.latex&quot;=&quot;application/x-latex&quot;<br />
&quot;.lavs&quot;=&quot;audio/x-liquid-secure&quot;<br />
&quot;.lbm&quot;=&quot;application/x-lbm&quot;<br />
&quot;.lmsff&quot;=&quot;audio/x-la-lms&quot;<br />
&quot;.ls&quot;=&quot;application/x-javascript&quot;<br />
&quot;.ltr&quot;=&quot;application/x-ltr&quot;<br />
&quot;.m1v&quot;=&quot;video/x-mpeg&quot;<br />
&quot;.m2v&quot;=&quot;video/x-mpeg&quot;<br />
&quot;.m3u&quot;=&quot;audio/mpegurl&quot;<br />
&quot;.m4e&quot;=&quot;video/mpeg4&quot;<br />
&quot;.mac&quot;=&quot;application/x-mac&quot;<br />
&quot;.man&quot;=&quot;application/x-troff-man&quot;<br />
&quot;.math&quot;=&quot;text/xml&quot;<br />
&quot;.mdb&quot;=&quot;application/msaccess&quot;<br />
&quot;.mdb&quot;=&quot;application/x-mdb&quot;<br />
&quot;.mfp&quot;=&quot;application/x-shockwave-flash&quot;<br />
&quot;.mht&quot;=&quot;message/rfc822&quot;<br />
&quot;.mhtml&quot;=&quot;message/rfc822&quot;<br />
&quot;.mi&quot;=&quot;application/x-mi&quot;<br />
&quot;.mid&quot;=&quot;audio/mid&quot;<br />
&quot;.midi&quot;=&quot;audio/mid&quot;<br />
&quot;.mil&quot;=&quot;application/x-mil&quot;<br />
&quot;.mml&quot;=&quot;text/xml&quot;<br />
&quot;.mnd&quot;=&quot;audio/x-musicnet-download&quot;<br />
&quot;.mns&quot;=&quot;audio/x-musicnet-stream&quot;<br />
&quot;.mocha&quot;=&quot;application/x-javascript&quot;<br />
&quot;.movie&quot;=&quot;video/x-sgi-movie&quot;<br />
&quot;.mp1&quot;=&quot;audio/mp1&quot;<br />
&quot;.mp2&quot;=&quot;audio/mp2&quot;<br />
&quot;.mp2v&quot;=&quot;video/mpeg&quot;<br />
&quot;.mp3&quot;=&quot;audio/mp3&quot;<br />
&quot;.mp4&quot;=&quot;video/mpeg4&quot;<br />
&quot;.mpa&quot;=&quot;video/x-mpg&quot;<br />
&quot;.mpd&quot;=&quot;application/vnd.ms-project&quot;<br />
&quot;.mpe&quot;=&quot;video/x-mpeg&quot;<br />
&quot;.mpeg&quot;=&quot;video/mpg&quot;<br />
&quot;.mpg&quot;=&quot;video/mpg&quot;<br />
&quot;.mpga&quot;=&quot;audio/rn-mpeg&quot;<br />
&quot;.mpp&quot;=&quot;application/vnd.ms-project&quot;<br />
&quot;.mps&quot;=&quot;video/x-mpeg&quot;<br />
&quot;.mpt&quot;=&quot;application/vnd.ms-project&quot;<br />
&quot;.mpv&quot;=&quot;video/mpg&quot;<br />
&quot;.mpv2&quot;=&quot;video/mpeg&quot;<br />
&quot;.mpw&quot;=&quot;application/vnd.ms-project&quot;<br />
&quot;.mpx&quot;=&quot;application/vnd.ms-project&quot;<br />
&quot;.mtx&quot;=&quot;text/xml&quot;<br />
&quot;.mxp&quot;=&quot;application/x-mmxp&quot;<br />
&quot;.net&quot;=&quot;image/pnetvue&quot;<br />
&quot;.nrf&quot;=&quot;application/x-nrf&quot;<br />
&quot;.nws&quot;=&quot;message/rfc822&quot;<br />
&quot;.odc&quot;=&quot;text/x-ms-odc&quot;<br />
&quot;.out&quot;=&quot;application/x-out&quot;<br />
&quot;.p10&quot;=&quot;application/pkcs10&quot;<br />
&quot;.p12&quot;=&quot;application/x-pkcs12&quot;<br />
&quot;.p7b&quot;=&quot;application/x-pkcs7-certificates&quot;<br />
&quot;.p7c&quot;=&quot;application/pkcs7-mime&quot;<br />
&quot;.p7m&quot;=&quot;application/pkcs7-mime&quot;<br />
&quot;.p7r&quot;=&quot;application/x-pkcs7-certreqresp&quot;<br />
&quot;.p7s&quot;=&quot;application/pkcs7-signature&quot;<br />
&quot;.pc5&quot;=&quot;application/x-pc5&quot;<br />
&quot;.pci&quot;=&quot;application/x-pci&quot;<br />
&quot;.pcl&quot;=&quot;application/x-pcl&quot;<br />
&quot;.pcx&quot;=&quot;application/x-pcx&quot;<br />
&quot;.pdf&quot;=&quot;application/pdf&quot;<br />
&quot;.pdf&quot;=&quot;application/pdf&quot;<br />
&quot;.pdx&quot;=&quot;application/vnd.adobe.pdx&quot;<br />
&quot;.pfx&quot;=&quot;application/x-pkcs12&quot;<br />
&quot;.pgl&quot;=&quot;application/x-pgl&quot;<br />
&quot;.pic&quot;=&quot;application/x-pic&quot;<br />
&quot;.pko&quot;=&quot;application/vnd.ms-pki.pko&quot;<br />
&quot;.pl&quot;=&quot;application/x-perl&quot;<br />
&quot;.plg&quot;=&quot;text/html&quot;<br />
&quot;.pls&quot;=&quot;audio/scpls&quot;<br />
&quot;.plt&quot;=&quot;application/x-plt&quot;<br />
&quot;.png&quot;=&quot;image/png&quot;<br />
&quot;.png&quot;=&quot;application/x-png&quot;<br />
&quot;.pot&quot;=&quot;application/vnd.ms-powerpoint&quot;<br />
&quot;.ppa&quot;=&quot;application/vnd.ms-powerpoint&quot;<br />
&quot;.ppm&quot;=&quot;application/x-ppm&quot;<br />
&quot;.pps&quot;=&quot;application/vnd.ms-powerpoint&quot;<br />
&quot;.ppt&quot;=&quot;application/vnd.ms-powerpoint&quot;<br />
&quot;.ppt&quot;=&quot;application/x-ppt&quot;<br />
&quot;.pr&quot;=&quot;application/x-pr&quot;<br />
&quot;.prf&quot;=&quot;application/pics-rules&quot;<br />
&quot;.prn&quot;=&quot;application/x-prn&quot;<br />
&quot;.prt&quot;=&quot;application/x-prt&quot;<br />
&quot;.ps&quot;=&quot;application/x-ps&quot;<br />
&quot;.ps&quot;=&quot;application/postscript&quot;<br />
&quot;.ptn&quot;=&quot;application/x-ptn&quot;<br />
&quot;.pwz&quot;=&quot;application/vnd.ms-powerpoint&quot;<br />
&quot;.r3t&quot;=&quot;text/vnd.rn-realtext3d&quot;<br />
&quot;.ra&quot;=&quot;audio/vnd.rn-realaudio&quot;<br />
&quot;.ram&quot;=&quot;audio/x-pn-realaudio&quot;<br />
&quot;.ras&quot;=&quot;application/x-ras&quot;<br />
&quot;.rat&quot;=&quot;application/rat-file&quot;<br />
&quot;.rdf&quot;=&quot;text/xml&quot;<br />
&quot;.rec&quot;=&quot;application/vnd.rn-recording&quot;<br />
&quot;.red&quot;=&quot;application/x-red&quot;<br />
&quot;.rgb&quot;=&quot;application/x-rgb&quot;<br />
&quot;.rjs&quot;=&quot;application/vnd.rn-realsystem-rjs&quot;<br />
&quot;.rjt&quot;=&quot;application/vnd.rn-realsystem-rjt&quot;<br />
&quot;.rlc&quot;=&quot;application/x-rlc&quot;<br />
&quot;.rle&quot;=&quot;application/x-rle&quot;<br />
&quot;.rm&quot;=&quot;application/vnd.rn-realmedia&quot;<br />
&quot;.rmf&quot;=&quot;application/vnd.adobe.rmf&quot;<br />
&quot;.rmi&quot;=&quot;audio/mid&quot;<br />
&quot;.rmj&quot;=&quot;application/vnd.rn-realsystem-rmj&quot;<br />
&quot;.rmm&quot;=&quot;audio/x-pn-realaudio&quot;<br />
&quot;.rmp&quot;=&quot;application/vnd.rn-rn_music_package&quot;<br />
&quot;.rms&quot;=&quot;application/vnd.rn-realmedia-secure&quot;<br />
&quot;.rmvb&quot;=&quot;application/vnd.rn-realmedia-vbr&quot;<br />
&quot;.rmx&quot;=&quot;application/vnd.rn-realsystem-rmx&quot;<br />
&quot;.rnx&quot;=&quot;application/vnd.rn-realplayer&quot;<br />
&quot;.rp&quot;=&quot;image/vnd.rn-realpix&quot;<br />
&quot;.rpm&quot;=&quot;audio/x-pn-realaudio-plugin&quot;<br />
&quot;.rsml&quot;=&quot;application/vnd.rn-rsml&quot;<br />
&quot;.rt&quot;=&quot;text/vnd.rn-realtext&quot;<br />
&quot;.rtf&quot;=&quot;application/msword&quot;<br />
&quot;.rtf&quot;=&quot;application/x-rtf&quot;<br />
&quot;.rv&quot;=&quot;video/vnd.rn-realvideo&quot;<br />
&quot;.sam&quot;=&quot;application/x-sam&quot;<br />
&quot;.sat&quot;=&quot;application/x-sat&quot;<br />
&quot;.sdp&quot;=&quot;application/sdp&quot;<br />
&quot;.sdw&quot;=&quot;application/x-sdw&quot;<br />
&quot;.sit&quot;=&quot;application/x-stuffit&quot;<br />
&quot;.slb&quot;=&quot;application/x-slb&quot;<br />
&quot;.sld&quot;=&quot;application/x-sld&quot;<br />
&quot;.slk&quot;=&quot;drawing/x-slk&quot;<br />
&quot;.smi&quot;=&quot;application/smil&quot;<br />
&quot;.smil&quot;=&quot;application/smil&quot;<br />
&quot;.smk&quot;=&quot;application/x-smk&quot;<br />
&quot;.snd&quot;=&quot;audio/basic&quot;<br />
&quot;.sol&quot;=&quot;text/plain&quot;<br />
&quot;.sor&quot;=&quot;text/plain&quot;<br />
&quot;.spc&quot;=&quot;application/x-pkcs7-certificates&quot;<br />
&quot;.spl&quot;=&quot;application/futuresplash&quot;<br />
&quot;.spp&quot;=&quot;text/xml&quot;<br />
&quot;.ssm&quot;=&quot;application/streamingmedia&quot;<br />
&quot;.sst&quot;=&quot;application/vnd.ms-pki.certstore&quot;<br />
&quot;.stl&quot;=&quot;application/vnd.ms-pki.stl&quot;<br />
&quot;.stm&quot;=&quot;text/html&quot;<br />
&quot;.sty&quot;=&quot;application/x-sty&quot;<br />
&quot;.svg&quot;=&quot;text/xml&quot;<br />
&quot;.swf&quot;=&quot;application/x-shockwave-flash&quot;<br />
&quot;.tdf&quot;=&quot;application/x-tdf&quot;<br />
&quot;.tg4&quot;=&quot;application/x-tg4&quot;<br />
&quot;.tga&quot;=&quot;application/x-tga&quot;<br />
&quot;.tif&quot;=&quot;image/tiff&quot;<br />
&quot;.tif&quot;=&quot;application/x-tif&quot;<br />
&quot;.tiff&quot;=&quot;image/tiff&quot;<br />
&quot;.tld&quot;=&quot;text/xml&quot;<br />
&quot;.top&quot;=&quot;drawing/x-top&quot;<br />
&quot;.torrent&quot;=&quot;application/x-bittorrent&quot;<br />
&quot;.tsd&quot;=&quot;text/xml&quot;<br />
&quot;.txt&quot;=&quot;text/plain&quot;<br />
&quot;.uin&quot;=&quot;application/x-icq&quot;<br />
&quot;.uls&quot;=&quot;text/iuls&quot;<br />
&quot;.vcf&quot;=&quot;text/x-vcard&quot;<br />
&quot;.vda&quot;=&quot;application/x-vda&quot;<br />
&quot;.vdx&quot;=&quot;application/vnd.visio&quot;<br />
&quot;.vml&quot;=&quot;text/xml&quot;<br />
&quot;.vpg&quot;=&quot;application/x-vpeg005&quot;<br />
&quot;.vsd&quot;=&quot;application/vnd.visio&quot;<br />
&quot;.vsd&quot;=&quot;application/x-vsd&quot;<br />
&quot;.vss&quot;=&quot;application/vnd.visio&quot;<br />
&quot;.vst&quot;=&quot;application/vnd.visio&quot;<br />
&quot;.vst&quot;=&quot;application/x-vst&quot;<br />
&quot;.vsw&quot;=&quot;application/vnd.visio&quot;<br />
&quot;.vsx&quot;=&quot;application/vnd.visio&quot;<br />
&quot;.vtx&quot;=&quot;application/vnd.visio&quot;<br />
&quot;.vxml&quot;=&quot;text/xml&quot;<br />
&quot;.wav&quot;=&quot;audio/wav&quot;<br />
&quot;.wax&quot;=&quot;audio/x-ms-wax&quot;<br />
&quot;.wb1&quot;=&quot;application/x-wb1&quot;<br />
&quot;.wb2&quot;=&quot;application/x-wb2&quot;<br />
&quot;.wb3&quot;=&quot;application/x-wb3&quot;<br />
&quot;.wbmp&quot;=&quot;image/vnd.wap.wbmp&quot;<br />
&quot;.wiz&quot;=&quot;application/msword&quot;<br />
&quot;.wk3&quot;=&quot;application/x-wk3&quot;<br />
&quot;.wk4&quot;=&quot;application/x-wk4&quot;<br />
&quot;.wkq&quot;=&quot;application/x-wkq&quot;<br />
&quot;.wks&quot;=&quot;application/x-wks&quot;<br />
&quot;.wm&quot;=&quot;video/x-ms-wm&quot;<br />
&quot;.wma&quot;=&quot;audio/x-ms-wma&quot;<br />
&quot;.wmd&quot;=&quot;application/x-ms-wmd&quot;<br />
&quot;.wmf&quot;=&quot;application/x-wmf&quot;<br />
&quot;.wml&quot;=&quot;text/vnd.wap.wml&quot;<br />
&quot;.wmv&quot;=&quot;video/x-ms-wmv&quot;<br />
&quot;.wmx&quot;=&quot;video/x-ms-wmx&quot;<br />
&quot;.wmz&quot;=&quot;application/x-ms-wmz&quot;<br />
&quot;.wp6&quot;=&quot;application/x-wp6&quot;<br />
&quot;.wpd&quot;=&quot;application/x-wpd&quot;<br />
&quot;.wpg&quot;=&quot;application/x-wpg&quot;<br />
&quot;.wpl&quot;=&quot;application/vnd.ms-wpl&quot;<br />
&quot;.wq1&quot;=&quot;application/x-wq1&quot;<br />
&quot;.wr1&quot;=&quot;application/x-wr1&quot;<br />
&quot;.wri&quot;=&quot;application/x-wri&quot;<br />
&quot;.wrk&quot;=&quot;application/x-wrk&quot;<br />
&quot;.ws&quot;=&quot;application/x-ws&quot;<br />
&quot;.ws2&quot;=&quot;application/x-ws&quot;<br />
&quot;.wsc&quot;=&quot;text/scriptlet&quot;<br />
&quot;.wsdl&quot;=&quot;text/xml&quot;<br />
&quot;.wvx&quot;=&quot;video/x-ms-wvx&quot;<br />
&quot;.xdp&quot;=&quot;application/vnd.adobe.xdp&quot;<br />
&quot;.xdr&quot;=&quot;text/xml&quot;<br />
&quot;.xfd&quot;=&quot;application/vnd.adobe.xfd&quot;<br />
&quot;.xfdf&quot;=&quot;application/vnd.adobe.xfdf&quot;<br />
&quot;.xhtml&quot;=&quot;text/html&quot;<br />
&quot;.xls&quot;=&quot;application/vnd.ms-excel&quot;<br />
&quot;.xls&quot;=&quot;application/x-xls&quot;<br />
&quot;.xlw&quot;=&quot;application/x-xlw&quot;<br />
&quot;.xml&quot;=&quot;text/xml&quot;<br />
&quot;.xpl&quot;=&quot;audio/scpls&quot;<br />
&quot;.xq&quot;=&quot;text/xml&quot;<br />
&quot;.xql&quot;=&quot;text/xml&quot;<br />
&quot;.xquery&quot;=&quot;text/xml&quot;<br />
&quot;.xsd&quot;=&quot;text/xml&quot;<br />
&quot;.xsl&quot;=&quot;text/xml&quot;<br />
&quot;.xslt&quot;=&quot;text/xml&quot;<br />
&quot;.xwd&quot;=&quot;application/x-xwd&quot;<br />
&quot;.x_b&quot;=&quot;application/x-x_b&quot;<br />
&quot;.x_t&quot;=&quot;application/x-x_t&quot;</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=976</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-04-23 11:51</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=974</guid>
			<title>.net 服务器应用程序不可用</title>
			<author>Calchas</author>
			<description><![CDATA[<h1><font face="Verdana" color="#ff3300">服务器应用程序不可用 </font></h1>
<p><font face="Verdana">您试图在此 Web 服务器上访问的 Web 应用程序当前不可用。请点击 Web 浏览器中的&ldquo;刷新&rdquo;按钮重试您的请求。</font></p>
<p><strong>管理员注意事项: </strong>详述此特定请求失败原因的错误信息可在 Web 服务器的系统事件日志中找到。请检查此日志项以查明导致该错误发生的原因。</p>
<p>&nbsp;</p>
<p><strong>原因及解决方法：</strong></p>
<p><font size="2" color="#ff0000">一个应用程序池里有.net 1.1与.net 2.0 两个版本的网站，而IIS在同一应用程序池里只能执行其中一种，所以，如果有两个版本同时运行则会导致上上错误。</font></p>
<p><font size="2" color="#ff0000">只要再新建一个应用程序池，将当前站点的应用程序池修改到这个新建的程序池中即可解决。或分别建net2及net1两个应用程序池，以后有不同版本的网站，回到相应应用程序池里就OK了。</font></p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=974</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-04-13 08:51</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=966</guid>
			<title>.NET 下的 JS 对 CheckBox 取值</title>
			<author>Calchas</author>
			<description><![CDATA[<p><br />
x.aspx</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol start="1" class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span>%@&nbsp;Page&nbsp;</span><span class="attribute">Language</span><span>=</span><span class="attribute-value">&quot;C#&quot;</span><span>&nbsp;</span><span class="attribute">AutoEventWireup</span><span>=</span><span class="attribute-value">&quot;true&quot;</span><span>&nbsp;</span><span class="attribute">CodeFile</span><span>=</span><span class="attribute-value">&quot;Default.aspx.cs&quot;</span><span>&nbsp;</span><span class="attribute">Inherits</span><span>=</span><span class="attribute-value">&quot;_Default&quot;</span><span>&nbsp;%</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&lt;!DOCTYPE&nbsp;html&nbsp;PUBLIC&nbsp;&quot;-//W3C//DTD&nbsp;XHTML&nbsp;1.0&nbsp;Transitional//EN&quot;&nbsp;&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;<span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">html</span><span>&nbsp;</span><span class="attribute">xmlns</span><span>=</span><span class="attribute-value">&quot;http://www.w3.org/1999/xhtml&quot;</span><span>&nbsp;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="tag">&lt;</span><span class="tag-name">head</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>无标题页</span><span class="tag">&lt;/</span><span class="tag-name">title</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">script</span><span>&nbsp;</span><span class="attribute">language</span><span>=</span><span class="attribute-value">&quot;javascript&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;text/javascript&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;function&nbsp;checkAll()&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;<span class="attribute">ckelems</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementById(&quot;CheckBoxList1&quot;).getElementsByTagName(&quot;input&quot;);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;<span class="attribute">spelems</span><span>&nbsp;=&nbsp;</span><span class="attribute-value">document</span><span>.getElementById(&quot;CheckBoxList1&quot;).getElementsByTagName(&quot;span&quot;);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(var&nbsp;<span class="attribute">i</span><span>=</span><span class="attribute-value">0</span><span>;i</span><span class="tag">&lt;</span><span class="tag-name">ckelems.length</span><span>;i++)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ckelems[i]<span class="attribute">.type</span><span>==&quot;checkbox&quot;)&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(ckelems[i].checked)&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alert('文本是&nbsp;&quot;'+spelems[i].text+'&quot;&nbsp;值是&nbsp;：'+spelems[i].value1);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">script</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="tag">&lt;/</span><span class="tag-name">head</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">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">form</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;form1&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">text</span><span>=</span><span class="attribute-value">&quot;11&quot;</span><span>&nbsp;</span><span class="attribute">value1</span><span>=</span><span class="attribute-value">&quot;111&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">text</span><span>=</span><span class="attribute-value">&quot;11&quot;</span><span>&nbsp;</span><span class="attribute">value1</span><span>=</span><span class="attribute-value">&quot;111&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">text</span><span>=</span><span class="attribute-value">&quot;11&quot;</span><span>&nbsp;</span><span class="attribute">value1</span><span>=</span><span class="attribute-value">&quot;111&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">text</span><span>=</span><span class="attribute-value">&quot;11&quot;</span><span>&nbsp;</span><span class="attribute">value1</span><span>=</span><span class="attribute-value">&quot;111&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">text</span><span>=</span><span class="attribute-value">&quot;11&quot;</span><span>&nbsp;</span><span class="attribute">value1</span><span>=</span><span class="attribute-value">&quot;111&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">text</span><span>=</span><span class="attribute-value">&quot;11&quot;</span><span>&nbsp;</span><span class="attribute">value1</span><span>=</span><span class="attribute-value">&quot;111&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">span</span><span>&nbsp;</span><span class="attribute">text</span><span>=</span><span class="attribute-value">&quot;11&quot;</span><span>&nbsp;</span><span class="attribute">value1</span><span>=</span><span class="attribute-value">&quot;111&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">asp:CheckBoxList</span><span>&nbsp;</span><span class="attribute">ID</span><span>=</span><span class="attribute-value">&quot;CheckBoxList1&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span>&nbsp;</span><span class="attribute">RepeatColumns</span><span>=</span><span class="attribute-value">&quot;4&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">asp:CheckBoxList</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">br</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;</span><span class="tag-name">input</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;Button1&quot;</span><span>&nbsp;</span><span class="attribute">type</span><span>=</span><span class="attribute-value">&quot;button&quot;</span><span>&nbsp;</span><span class="attribute">value</span><span>=</span><span class="attribute-value">&quot;button&quot;</span><span>&nbsp;&nbsp;</span><span class="attribute">onclick</span><span>=</span><span class="attribute-value">&quot;checkAll()&quot;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="tag">&lt;/</span><span class="tag-name">form</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">body</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="tag">&lt;/</span><span class="tag-name">html</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
</ol>
</div>
<p><br />
x.aspx.cs</p>
<div class="codeText">
<div class="codeHead">C#代码</div>
<ol start="1" class="dp-c">
    <li class="alt"><span><span class="keyword">using</span><span>&nbsp;System;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">using</span><span>&nbsp;System.Data;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">using</span><span>&nbsp;System.Configuration;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">using</span><span>&nbsp;System.Collections;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">using</span><span>&nbsp;System.Web;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">using</span><span>&nbsp;System.Web.Security;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">using</span><span>&nbsp;System.Web.UI;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">using</span><span>&nbsp;System.Web.UI.WebControls;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">using</span><span>&nbsp;System.Web.UI.WebControls.WebParts;&nbsp;&nbsp;</span></span></li>
    <li class=""><span><span class="keyword">using</span><span>&nbsp;System.Web.UI.HtmlControls;&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span><span class="keyword">using</span><span>&nbsp;System.Collections.Generic;&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span><span class="keyword">public</span><span>&nbsp;partial&nbsp;</span><span class="keyword">class</span><span>&nbsp;_Default&nbsp;:&nbsp;System.Web.UI.Page&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>{&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">protected</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;Page_Load(</span><span class="keyword">object</span><span>&nbsp;sender,&nbsp;EventArgs&nbsp;e)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;<span class="keyword">string</span><span>[]&gt;&nbsp;metadata&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;List&lt;</span><span class="keyword">string</span><span>[]&gt;();&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata.Add(<span class="keyword">new</span><span>&nbsp;</span><span class="keyword">string</span><span>[]&nbsp;{&nbsp;</span><span class="string">&quot;项目前期&quot;</span><span>,&nbsp;</span><span class="string">&quot;前期&quot;</span><span>&nbsp;});&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata.Add(<span class="keyword">new</span><span>&nbsp;</span><span class="keyword">string</span><span>[]&nbsp;{&nbsp;</span><span class="string">&quot;项目进行中&quot;</span><span>,&nbsp;</span><span class="string">&quot;进行中&quot;</span><span>&nbsp;});&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata.Add(<span class="keyword">new</span><span>&nbsp;</span><span class="keyword">string</span><span>[]&nbsp;{&nbsp;</span><span class="string">&quot;项目中期&quot;</span><span>,&nbsp;</span><span class="string">&quot;中期&quot;</span><span>&nbsp;});&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata.Add(<span class="keyword">new</span><span>&nbsp;</span><span class="keyword">string</span><span>[]&nbsp;{&nbsp;</span><span class="string">&quot;项目后期&quot;</span><span>,&nbsp;</span><span class="string">&quot;后期&quot;</span><span>&nbsp;});&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata.Add(<span class="keyword">new</span><span>&nbsp;</span><span class="keyword">string</span><span>[]&nbsp;{&nbsp;</span><span class="string">&quot;项目结束&quot;</span><span>,&nbsp;</span><span class="string">&quot;结束&quot;</span><span>&nbsp;});&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;metadata.Add(<span class="keyword">new</span><span>&nbsp;</span><span class="keyword">string</span><span>[]&nbsp;{&nbsp;</span><span class="string">&quot;项目意外中止&quot;</span><span>,&nbsp;</span><span class="string">&quot;中止&quot;</span><span>&nbsp;});&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ListItem&nbsp;lt;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;metadata.Count;&nbsp;i++)&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lt&nbsp;=&nbsp;<span class="keyword">new</span><span>&nbsp;ListItem(metadata[i][0],&nbsp;metadata[i][1]);&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lt.Attributes[<span class="string">&quot;text&quot;</span><span>]&nbsp;=&nbsp;metadata[i][0];&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lt.Attributes[<span class="string">&quot;value1&quot;</span><span>]&nbsp;=&nbsp;metadata[i][1];&nbsp;&nbsp;</span></span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">this</span><span>.CheckBoxList1.Items.Add(lt);&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=966</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-03-06 15:27</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=964</guid>
			<title>.NET 控制多项选择的选择数目、多选取值</title>
			<author>Calchas</author>
			<description><![CDATA[<p>JS</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">JavaScript代码</div>
<ol class="dp-c">
    <li class="alt"><span><span class="keyword">function</span><span>&nbsp;GoCheck(CheckBoxID,ItemCount,MaxItem)&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">var</span><span>&nbsp;iCount&nbsp;=&nbsp;0;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span class="keyword">for</span><span>(</span><span class="keyword">var</span><span>&nbsp;i=0;i&lt;ItemCount;i++)&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span class="keyword">var</span><span>&nbsp;chk&nbsp;=&nbsp;document.getElementById(CheckBoxID+</span><span class="string">&quot;_&quot;</span><span>+i);&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">if</span><span>(chk&nbsp;!=&nbsp;</span><span class="keyword">null</span><span>&nbsp;)&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">if</span><span>(chk.checked)&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>iCount&nbsp;++;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">if</span><span>(iCount&nbsp;&gt;&nbsp;MaxItem)&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>{&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>alert(</span><span class="string">&quot;最多只能选择&quot;</span><span>+MaxItem+</span><span class="string">&quot;项&quot;</span><span>);&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span class="keyword">return</span><span>&nbsp;</span><span class="keyword">false</span><span>;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>HTML</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">tr</span><span>&nbsp;</span><span class="attribute">class</span><span>=</span><span class="attribute-value">&quot;title&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">td</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">a</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;A4&quot;</span><span class="tag">&gt;</span><span>（4）影响您选择留学国家的因素主要是（请选择两项）：</span><span class="tag">&lt;/</span><span class="tag-name">a</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">td</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">asp:CheckBoxList</span><span>&nbsp;</span><span class="attribute">ID</span><span>=</span><span class="attribute-value">&quot;RadioButtonList4&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span>&nbsp;</span><span class="attribute">RepeatColumns</span><span>=</span><span class="attribute-value">&quot;3&quot;</span><span>&nbsp;</span><span class="attribute">RepeatDirection</span><span>=</span><span class="attribute-value">&quot;Horizontal&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:ListItem</span><span>&nbsp;</span><span class="attribute">Text</span><span>=</span><span class="attribute-value">&quot;A、资金&quot;</span><span>&nbsp;</span><span class="attribute">Value</span><span>=</span><span class="attribute-value">&quot;A&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:ListItem</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:ListItem</span><span>&nbsp;</span><span class="attribute">Text</span><span>=</span><span class="attribute-value">&quot;B、语言&quot;</span><span>&nbsp;</span><span class="attribute">Value</span><span>=</span><span class="attribute-value">&quot;B&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:ListItem</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:ListItem</span><span>&nbsp;</span><span class="attribute">Text</span><span>=</span><span class="attribute-value">&quot;C、学校和专业&quot;</span><span>&nbsp;</span><span class="attribute">Value</span><span>=</span><span class="attribute-value">&quot;C&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:ListItem</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:ListItem</span><span>&nbsp;</span><span class="attribute">Text</span><span>=</span><span class="attribute-value">&quot;D、国家政治经济环境&quot;</span><span>&nbsp;</span><span class="attribute">Value</span><span>=</span><span class="attribute-value">&quot;D&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:ListItem</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:ListItem</span><span>&nbsp;</span><span class="attribute">Text</span><span>=</span><span class="attribute-value">&quot;E、移民政策&quot;</span><span>&nbsp;</span><span class="attribute">Value</span><span>=</span><span class="attribute-value">&quot;E&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:ListItem</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:ListItem</span><span>&nbsp;</span><span class="attribute">Text</span><span>=</span><span class="attribute-value">&quot;F、其他（请填写）&quot;</span><span>&nbsp;</span><span class="attribute">Value</span><span>=</span><span class="attribute-value">&quot;F&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:ListItem</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">asp:CheckBoxList</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:TextBox</span><span>&nbsp;</span><span class="attribute">ID</span><span>=</span><span class="attribute-value">&quot;txtRadioButtonList4&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span>&nbsp;</span><span class="attribute">CssClass</span><span>=</span><span class="attribute-value">&quot;otheritem&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:TextBox</span><span class="tag">&gt;</span><span class="tag">&lt;</span><span class="tag-name">br</span><span>&nbsp;</span><span class="tag">/&gt;</span><span class="tag">&lt;/</span><span class="tag-name">td</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">tr</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>C S</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">C#代码</div>
<ol class="dp-c">
    <li class="alt"><span><span class="comment">//设定点击事件 </span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span class="keyword">this</span><span>.RadioButtonList4.Attributes.Add(</span><span class="string">&quot;onclick&quot;</span><span>,&nbsp;</span><span class="string">&quot;javacript:return&nbsp;GoCheck('RadioButtonList4',&quot;</span><span>&nbsp;+&nbsp;</span><span class="keyword">this</span><span>.RadioButtonList4.Items.Count&nbsp;+&nbsp;</span><span class="string">&quot;,2);&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span class="comment">//多选取值 </span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">string</span><span>&nbsp;Question4&nbsp;=&nbsp;CheckBoxValue(RadioButtonList4).ToString(); &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">protected</span><span>&nbsp;</span><span class="keyword">string</span><span>&nbsp;CheckBoxValue(CheckBoxList&nbsp;cbl) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">string</span><span>&nbsp;s&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;cbl.Items.Count;&nbsp;i++) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ListItem&nbsp;li&nbsp;=&nbsp;cbl.Items[i]; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(li.Selected) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(s&nbsp;==&nbsp;</span><span class="string">&quot;&quot;</span><span>) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;li.Value; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;</span><span class="string">&quot;,&quot;</span><span>&nbsp;+&nbsp;li.Value; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;s; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li>
</ol>
</div>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=964</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-02-09 15:13</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=959</guid>
			<title>ASP.NET 中的正则表达式</title>
			<author>Calchas</author>
			<description><![CDATA[<div id="mainSection">
<div id="mainBody">
<div>
<p><strong>速成课程</strong></p>
<p>Steven A. Smith</p>
<p>适用范围：<br />
Microsoft&reg; .NET Framework<br />
Microsoft&reg; ASP.NET<br />
正则表达式 API</p>
<p><strong>摘要：</strong>正则表达式是一种处理文本的有用工具。无论是验证用户输入、搜索字符串内的模式、还是以各种有效方式重新设置文本格式，正则表达式都非常有用。</p>
<p><a href="http://download.microsoft.com/download/6/4/6/64652343-72d4-45b3-975e-884c0c39f68d/MSDNRegExASPNET.msi" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl01',this);" id="ctl00_rs1_mainContentContainer_ctl01">下载本文的源代码</a>。</p>
<h5>本页内容</h5>
<p><a href="#XSLTsection124121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="引言" />  </a><a href="#XSLTsection124121120120">引言</a> <br />
<a href="#XSLTsection127121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="正则表达式使用历史简介" />  </a><a href="#XSLTsection127121120120">正则表达式使用历史简介</a> <br />
<a href="#XSLTsection130121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="简单表达式" />  </a><a href="#XSLTsection130121120120">简单表达式</a> <br />
<a href="#XSLTsection133121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="限定符" />  </a><a href="#XSLTsection133121120120">限定符</a> <br />
<a href="#XSLTsection136121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="元字符" />  </a><a href="#XSLTsection136121120120">元字符</a> <br />
<a href="#XSLTsection139121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="字符类" />  </a><a href="#XSLTsection139121120120">字符类</a> <br />
<a href="#XSLTsection142121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="预定义的集合元字符" />  </a><a href="#XSLTsection142121120120">预定义的集合元字符</a> <br />
<a href="#XSLTsection145121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="表达式示例" />  </a><a href="#XSLTsection145121120120">表达式示例</a> <br />
<a href="#XSLTsection148121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="ASP.NET 中的验证" />  </a><a href="#XSLTsection148121120120">ASP.NET 中的验证</a> <br />
<a href="#XSLTsection151121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="正则表达式 API" />  </a><a href="#XSLTsection151121120120">正则表达式 API</a> <br />
<a href="#XSLTsection154121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="免费工具" />  </a><a href="#XSLTsection154121120120">免费工具</a> <br />
<a href="#XSLTsection157121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="高级主题" />  </a><a href="#XSLTsection157121120120">高级主题</a> <br />
<a href="#XSLTsection160121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="结论" />  </a><a href="#XSLTsection160121120120">结论</a> <br />
<a href="#XSLTsection163121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="资源" />  </a><a href="#XSLTsection163121120120">资源</a> <br />
<a href="#XSLTsection166121120120"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_down(zh-cn,MSDN.10).gif" alt="作者简介" />  </a><a href="#XSLTsection166121120120">作者简介</a></p>
<h3 id="XSLTsection124121120120">引言</h3>
<p>Microsoft&reg;.NET Framework 对正则表达式的支持是一流的，甚至在 Microsoft&reg; ASP.NET  中也有依赖正则表达式语言的控件。本文介绍了深入学习正则表达式的基础知识和推荐内容。</p>
<p>本文主要面向对正则表达式知之甚少或没有使用经验，但却熟悉 ASP.NET、可借助 .NET 编程的初学者。此外，希望本文连同 <a href="http://www.regexlib.com/cheatsheet.htm" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl02',this);" id="ctl00_rs1_mainContentContainer_ctl02">regular expression cheat sheet</a>  成为有正则表达式使用经验的开发者的手头参考资料或进修资料。本文讨论内容如下：</p>
<ol>
    <li>
    <p>正则表达式使用历史简介</p>
    </li>
    <li>
    <p>简单表达式</p>
    </li>
    <li>
    <p>限定符</p>
    </li>
    <li>
    <p>元字符</p>
    </li>
    <li>
    <p>字符类</p>
    </li>
    <li>
    <p>预定义的集合元字符</p>
    </li>
    <li>
    <p>表达式示例详细内容</p>
    </li>
    <li>
    <p>ASP.NET 中的验证</p>
    </li>
    <li>
    <p>正则表达式 API</p>
    </li>
    <li>
    <p>免费工具</p>
    </li>
    <li>
    <p>高级主题概述</p>
    </li>
    <li>
    <p>小结和其他资源</p>
    </li>
</ol>
<p>通常，如果对本文或对正则表达式有疑问，请访问 <a href="http://www.aspadvice.com/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl03',this);" id="ctl00_rs1_mainContentContainer_ctl03">http://www.aspadvice.com/</a>，通过 <a href="http://aspadvice.com/login.aspx?ReturnUrl=/SignUp/list.aspx?l=68&amp;c=16&amp;l=68&amp;c=16" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl04',this);" id="ctl00_rs1_mainContentContainer_ctl04">regex  mailing list</a> 提出问题。编写此文时其中已有 350 多个订户参与。</p>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection127121120120">正则表达式使用历史简介</h3>
<p>正则表达式设计于五十年代，存在至今。正则表达式最初用于描述&ldquo;正则集&rdquo;，它们是一些神经生理学家研究的模式。正则表达式最早由数学家 Stephen  Kleene 提出，最终由 Ken Thompson 在两种非常流行的文本实用程序 qed 和 grep 中使用。Jeffrey Friedl  在其著作&ldquo;Mastering Regular Expressions (2<sup>nd</sup>  edition)&rdquo;中对此作了进一步阐述。建议那些希望更多了解正则表达式理论和历史的人看看这本书。</p>
<p>在最近的五十年中，正则表达式逐渐从模糊深奥的数学概念发展为在各类工具和软件包中应用的主要功能。尽管数十年来很多 UNIX  工具都支持正则表达式，但仅仅是近十年来，它才在大部分 Windows 开发者工具包中得到体现。在 Microsoft&reg; Visual Basic&reg; 6 或  Microsoft&reg; VBScript 中，即使情况理想，正则表达式仍难以使用。但随着.NET Framework 的推行，正则表达式的支持发展到极点，所有  Microsoft 开发者和所有 .NET 语言都可以使用正则表达式。</p>
<p>那么，正则表达式究竟是什么呢？正则表达式是一种语言，它可以明确描述文本字符串中的模式。除了简单描述这些模式之外，正则表达式引擎通常可用于遍历匹配，并使用模式作为分隔符来将字符串解析为子字符串，或以智能方式替换文本或重新设置文本格式。正则表达式为解决与文本处理有关的许多常见任务提供了有效而简捷的方式。</p>
<p>在讨论正则表达式时，通常以正则表达式匹配（或不匹配）的文本为基础分析正则表达式。本文（以及 System.Text.RegularExpressions  类）将在正则表达式交互操作中引用 3 个参与对象：正则表达式的&ldquo;模式&rdquo;、&ldquo;输入&rdquo;字符串和字符串内的所有模式的&ldquo;匹配&rdquo;。</p>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection130121120120">简单表达式</h3>
<p>最简单的正则表达式大家都已熟悉，即文字字符串。特定的字符串可通过文字本身加以描述；像 <strong>foo</strong> 这样的正则表达式模式可精确匹配输入的字符串  <strong>foo</strong>。在本例中，也将匹配如下输入：<strong>The </strong><em>foo</em> <strong>d was quite  tasty</strong>，如果希望精确匹配，这可能不是预期结果。</p>
<p>当然，使用正则表达式匹配等于它自身的精确字符串是没有价值的实现，不能体现正则表达式的真正作用。假如不查找 <strong>foo</strong>，而是查找以字母  <strong>f</strong> 开头的所有单词，或所有 3  个字母的单词，那该怎么办？目前，这超出了文字字符串的合理范围。我们需要更加深入地研究正则表达式。下面是一个文字表达式示例及一些匹配的输入。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>模式</p>
            </th>
            <th>
            <p>输入（匹配）</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>foo</p>
            </td>
            <td>
            <p><em>foo</em>、<em>foo</em>d、<em>foo</em>t、&ldquo;There's evil  a<em>foo</em>t.&rdquo;</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection133121120120">限定符</h3>
<p>限定符提供了一种简单方法，用于指定在模式中允许特定字符或字符集自身重复出现的次数。有 3 个非显式限定符：</p>
<ol>
    <li>
    <p><strong>*</strong>，描述&ldquo;出现 0 或多次&rdquo;。</p>
    </li>
    <li>
    <p>+，描述&ldquo;出现 1 或多次&rdquo;。</p>
    </li>
    <li>
    <p><strong>?</strong>，描述&ldquo;出现 0 或 1 次&rdquo;。</p>
    </li>
</ol>
<p>限定符始终引用限定符前（左边）的模式，通常是单个字符，除非使用括号创建模式组。下面是一些模式示例及匹配的输入。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>模式</p>
            </th>
            <th>
            <p>输入（匹配）</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>fo*</p>
            </td>
            <td>
            <p><em>foo</em>、<em>fo</em>e、<em>foo</em>d、<em>fooo</em>t、&ldquo;<em>fo</em>rget  it&rdquo;、<em>f</em>unny、 pu<em>ff</em>y</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>fo+</p>
            </td>
            <td>
            <p><em>foo</em>、<em>fo</em>e、<em>foo</em>d、<em>foo</em>t、&ldquo;<em>fo</em>rget  it&rdquo;</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>fo?</p>
            </td>
            <td>
            <p><em>fo</em>o、<em>fo</em>e、<em>fo</em>od、<em>fo</em>ot、&ldquo;<em>fo</em>rget  it&rdquo;、<em>f</em>unny、pu<em>ff</em>y</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<p>除了指定给定模式准确出现 0 或 1 次之外，<strong>?</strong> 字符还可强制模式或子模式匹配数目最少的字符（如果匹配输入字符串中的多个字符）。</p>
<p>除了非显式限定符（一般叫做限定符，但为区别于下一组，故称非显式限定符）之外，还有显式限定符。在模式出现次数方面，限定符的概念非常模糊。使用显式限定符则可准确指定数字、范围或数字集。显式限定符位于所应用的模式的后边，这一点与正则限定符一样。显式限定符使用花括号  {} 及其中的数字值表示模式出现次数的上下限。例如，<strong>x{5}</strong> 将准确匹配 5 个 x 字符  (<em>xxxxx</em>)。如果仅指定一个数字，则表示次数上限；如果数字后跟一个逗号，如 <strong>x{5,}</strong>，表示匹配任何出现次数大于 4 的 x  字符。下面是一些模式示例及匹配的输入。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>模式</p>
            </th>
            <th>
            <p>输入（匹配）</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>ab{2}c</p>
            </td>
            <td>
            <p><em>abbc</em>、aa<em>abbc</em>cc</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>ab{,2}c</p>
            </td>
            <td>
            <p><em>ac</em>、<em>abc</em>、<em>abbc</em>、a<em>abbc</em>c</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>ab{2,3}c</p>
            </td>
            <td>
            <p><em>abbc</em>、<em>abbbc</em>、a<em>abbc</em>c、a<em>abbbc</em>c</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection136121120120">元字符</h3>
<p>在正则表达式中，有一种意义特殊的构造，即元字符。目前已知的元字符有很多，如 <strong>*</strong>、<strong>?</strong>、<strong>+</strong> 和 <strong>{}</strong>  字符。其他字符在正则表达式语言中都有特殊的含义。这些字符包括：<strong>$ ^ . [ ( | ) ] </strong>和 <strong>\</strong>。</p>
<p><strong>.</strong>（句点或点）元字符是最简单但最常用的一个字符。它可匹配任何单字符。如果要指定某些模式可包含任意组合的字符，使用句点非常有用，但一定要在特定长度范围内。此外，我们知道表达式将对包含在较长字符串中的所有模式进行匹配，假如只需要精确匹配模式，又该怎么办？这在验证方案中经常出现，例如，要确保用户输入的邮政编码或电话号码的格式正确。使用  <strong>^</strong> 元字符可指定字符串（或行）的开始，使用 <strong>$</strong>  元字符可指定字符串（或行）的结束。通过将这些字符添加到模式的开始和结束处，可强制模式仅匹配精确匹配的输入字符串。如果 <strong>^</strong> 元字符用在方括号  <strong>[ ]</strong> 指定的字符类的开头，也有特殊的含义。具体内容见下。</p>
<p><strong>\  </strong>（反斜杠）元字符既可根据特殊含义&ldquo;转义&rdquo;字符，也可指定预定义集合元字符的实例。同样，具体内容见下。为了在正则表达式中包括文字样式的元字符，必须使用反斜杠进行&ldquo;转义&rdquo;。例如，如果要匹配以&ldquo;c:\&rdquo;开始的字符串，可使用：<strong>^c:\\</strong>。注意，要使用  <strong>^</strong> 元字符指出字符串必须以此模式作为开始，然后用反斜杠元字符转义文字反斜杠。</p>
<p><strong>|</strong>（管道）元字符用于交替指定，特别用于在模式中指定&ldquo;此或彼&rdquo;。例如，<strong>a|b</strong> 将匹配包含&ldquo;a&rdquo;或&ldquo;b&rdquo;的任何输入内容，这与字符类  <strong>[ab]</strong> 非常类似。</p>
<p>最后，括号 <strong>( )  </strong>用于给模式分组。它允许使用限定符让一个完整模式出现多次。为了便于阅读，或分开匹配特定的输入部分，可能允许分析或重新设置格式。</p>
<p>下面列出元字符的一些使用示例。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>模式</p>
            </th>
            <th>
            <p>输入（匹配）</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>.</p>
            </td>
            <td>
            <p><em>a</em>、<em>b</em>、<em>c</em>、<em>1</em>、<em>2</em>、<em>3</em></p>
            </td>
        </tr>
        <tr>
            <td>
            <p>.*</p>
            </td>
            <td>
            <p><em>Abc</em>, <em>123</em>, <em>任意字符串</em>, <em>无字符时也匹配</em></p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^c:\\</p>
            </td>
            <td>
            <p><em>c:\windows</em>、<em>c:\\\\\</em>、<em>c:\foo.txt</em>、<em>c:\  </em><em>后跟任何其他内容</em></p>
            </td>
        </tr>
        <tr>
            <td>
            <p>abc$</p>
            </td>
            <td>
            <p><em>abc</em>、<em>123abc</em>、<em>以</em> <em>abc </em><em>结束的任意字符串</em></p>
            </td>
        </tr>
        <tr>
            <td>
            <p>(abc){2,3}</p>
            </td>
            <td>
            <p><em>abcabc</em>、<em>abcabcabc</em></p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection139121120120">字符类</h3>
<p>字符类是正则表达式中的&ldquo;迷你&rdquo;语言，在方括号 <strong>[ ]</strong> 中定义。最简单的字符类只不过是括号中的一个字符表，如  <strong>[aeiou]</strong>。在表达式中使用字符类时，可在模式的此位置使用其中任何一个字符（但只能使用一个字符，除非使用了限定符）。请注意，不能使用字符类定义单词或模式，只能定义单个字符。</p>
<p>要指定任何数值数字，可以使用字符类 <strong>[0123456789]</strong>。但是，由于这样使用字符不大方便，所以要通过在括号中使用连字符 <strong>-</strong>  来定义字符的范围。连字符在字符类中有特殊的含义（不是在正则表达式中，因此，准确地说它不能叫正则表达式元字符），且仅在连字符不是第一个字符时，连字符才在字符类中有特殊含义。要使用连字符指定任何数值数字，可以使用  <strong>[0-9]</strong>。小写字母也一样，可以使用 <strong>[a-z]</strong>，大写字母可以使用  <strong>[A-Z]</strong>。连字符定义的范围取决于使用的字符集。因此，字符在（例如）ASCII 或 Unicode  表中出现的顺序确定了在范围中包括的字符。如果需要在范围中包括连字符，将它指定为第一个字符。例如：<strong>[-.?]</strong> 将匹配 4  个字符中任何一个字符（注意，最后的字符是个空格）。另请注意，正则表达式元字符在字符类中不做特殊处理，所以这些元字符不需要转义。考虑到字符类是与其他正则表达式语言分开的一种语言，因此字符类有自己的规则和语法。</p>
<p>如果使用字符 <strong>^</strong> 作为字符类的第一个字符来否定此类，也可以匹配字符类成员以外的任何字符。因此，要匹配任何非元音字符，可以使用字符类  <strong>[^aAeEiIoOuU]</strong>。注意，如果要否定连字符，应将连字符作为字符类的第二个字符，如 <strong>[^-]</strong>。记住，<strong>^  </strong>在字符类中的作用与它在正则表达式模式中的作用完全不同。</p>
<p>下面列出操作中使用的一些字符类。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>模式</p>
            </th>
            <th>
            <p>输入（匹配）</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>^b[aeiou]t$</p>
            </td>
            <td>
            <p><em>Bat</em>、<em>bet</em>、<em>bit</em>、<em>bot</em>、<em>but</em></p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^[0-9]{5}$</p>
            </td>
            <td>
            <p><em>11111</em>, <em>12345</em>, <em>99999</em></p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^c:\\</p>
            </td>
            <td>
            <p><em>c:\windows</em>、<em>c:\\\\\</em>、<em>c:\foo.txt</em>、<em>c:\  </em>后跟任何其他内容</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>abc$</p>
            </td>
            <td>
            <p><em>abc</em>、<em>123abc</em>、<em>以</em> <em>abc </em><em>结束的任意字符串</em></p>
            </td>
        </tr>
        <tr>
            <td>
            <p>(abc){2,3}</p>
            </td>
            <td>
            <p><em>abcabc</em>、<em>abcabcabc</em></p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^[^-][0-9]$</p>
            </td>
            <td>
            <p><em>0</em>、<em>1</em>、<em>2</em>、... （不匹配 -0、-1、 -2  等）</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<p>在 .NET Framework 的下一版中，代码名&ldquo;Whidbey&rdquo;作为一种新功能被添加到字符类中，称作字符类差 (character class  subtraction)。它的主要作用是，允许从一个字符类中减去另一个字符类，可提供更可读的方式描述某些模式。该规范可通过以下地址访问：<a href="http://www.gotdotnet.com/team/clr/bcl/TechArticles/techarticles/Specs/Regex/CharacterClassSubtraction.doc" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl05',this);" id="ctl00_rs1_mainContentContainer_ctl05">http://www.gotdotnet.com/team/clr/bcl/TechArticles/techarticles/Specs/Regex/CharacterClassSubtraction.doc</a>。它的语法类似  <strong>[a-z-[aeiou]]</strong>，匹配所有的小写辅音字母。</p>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection142121120120">预定义的集合元字符</h3>
<p>使用目前提供的工具可以完成很多工作。但是，要使用 <strong>[0-9]</strong> 表示模式中的每个数值数字，或（更糟）使用 <strong>[0</strong>  <strong>-9a</strong>  <strong>-zA-Z]</strong>表示任何字母数字字符，还有一段相当漫长的过程。为了减轻处理这些常用但冗长模式的痛苦，事先定义了预定义元字符集合。正则表达式的不同实现定义了不同的预定义元字符集合，下面描述的预定义元字符集合在  .NET Framework 中得到 <strong>System.Text.RegularExpressions</strong> API  的支持。这些预定义元字符的标准语法是，在反斜杠 <strong>\</strong>  后跟一个或多个字符。多数预定义元字符只有一个字符，它们的使用很容易，是冗长字符类的理想替代字符。以下是两个示例：<strong>\d</strong>  匹配所有数值数字，<strong>\w</strong> 匹配所有单词字符（字母数字加下划线）。例外情况是一些特定字符代码匹配，此时必须指定所匹配字符的地址，如 <strong>\u000D  </strong>将匹配 Unicode 回车符。下面列出一些最常用的字符类及其等效的元字符。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>元字符</p>
            </th>
            <th>
            <p>等效字符类</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>\a</p>
            </td>
            <td>
            <p>匹配铃声（警报）；\u0007</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\b</p>
            </td>
            <td>
            <p>匹配字符类外的字边界，它匹配退格字符，\u0008</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\t</p>
            </td>
            <td>
            <p>匹配制表符，\u0009</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\r</p>
            </td>
            <td>
            <p>匹配回车符，\u000D</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\w</p>
            </td>
            <td>
            <p>匹配垂直制表符，\u000B</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\f</p>
            </td>
            <td>
            <p>匹配换页符，\u000C</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\n</p>
            </td>
            <td>
            <p>匹配新行，\u000A</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\e</p>
            </td>
            <td>
            <p>匹配转义符，\u001B</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\040</p>
            </td>
            <td>
            <p>匹配 3 位 8 进制 ASCII 字符。\040 表示空格（十进制数 32）。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\x20</p>
            </td>
            <td>
            <p>使用 2 位 16 进制数匹配 ASCII 字符。此例中，\x2- 表示空格。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\cC</p>
            </td>
            <td>
            <p>匹配 ASCII 控制字符，此例中是 ctrl-C。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\u0020</p>
            </td>
            <td>
            <p>使用 4 位 16 进制数匹配 Unicode 字符。此例中 \u0020 是空格。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\*</p>
            </td>
            <td>
            <p>不代表预定义字符类的任意字符都只作为该字符本身对待。因此，<strong>\*</strong> 等同于 <strong>\x</strong> <strong>2A</strong>（是文字 *，不是 *  元字符）。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\p{name}</p>
            </td>
            <td>
            <p>匹配已命名字符类&ldquo;name&rdquo;中的任意字符。支持名称是 Unicode 组和块范围。例如，Ll、Nd、Z、IsGreek、IsBoxDrawing 和  Sc（货币）。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\p{name}</p>
            </td>
            <td>
            <p>匹配已命名字符类&ldquo;name&rdquo;中不包括的文本。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\w</p>
            </td>
            <td>
            <p>匹配任意单词字符。对于非 Unicode 和 ECMAScript 实现，这等同于 <strong>[a-zA-Z_0-9]</strong>。在 Unicode  类别中，这等同于 <strong>[\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]</strong>。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\W</p>
            </td>
            <td>
            <p>\w 的否定，等效于 ECMAScript 兼容集合 <strong>[^a-zA-Z_0-9]</strong> 或 Unicode 字符类别  <strong>[^\p{Ll}\p{Lu}\p{Lt}\p{Lo}\p{Nd}\p{Pc}]</strong>。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\s</p>
            </td>
            <td>
            <p>匹配任意空白区域字符。等效于 Unicode 字符类 <strong>[\f\n\r\t\v\x85\p{Z}]</strong>。如果使用 ECMAScript 选项指定  ECMAScript 兼容方式，\s 等效于 <strong>[ \f\n\r\t\v] </strong>（请注意前导空格）。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\S</p>
            </td>
            <td>
            <p>匹配任意非空白区域字符。等效于 Unicode 字符类别 <strong>[^\f\n\r\t\v\x85\p{Z}]</strong>。如果使用 ECMAScript  选项指定 ECMAScript 兼容方式，\S 等效于 <strong>[^ \f\n\r\t\v]</strong> （请注意 ^ 后的空格）。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\d</p>
            </td>
            <td>
            <p>匹配任意十进制数字。在 ECMAScript 方式下，等效于 Unicode 的 <strong>[\p{Nd}]</strong>、非 Unicode 的  <strong>[0-9]</strong>。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>\D</p>
            </td>
            <td>
            <p>匹配任意非十进制数字。在 ECMAScript 方式下，等效于 Unicode 的 <strong>[\p{Nd}]</strong>、非 Unicode 的  <strong>[^0-9]</strong>。</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection145121120120">表达式示例</h3>
<p>很多人都喜欢通过示例学习，下面即提供一些表达式示例。要获取更多示例，请访问以下地址中的正则表达式联机数据库：<a href="http://www.regexlib.com/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl06',this);" id="ctl00_rs1_mainContentContainer_ctl06">http://www.regexlib.com/</a>。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>模式</p>
            </th>
            <th>
            <p>说明</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>^\d{5}$</p>
            </td>
            <td>
            <p>5 个数值数字，如美国邮政编码。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^(\d{5})|(\d{5}-\d{4}$</p>
            </td>
            <td>
            <p>5 个数值数字或 5 个数字-短划线-4 个数字。匹配 5 位数字格式的美国邮政编码，或 5 位数字 + 4  位数字格式的美国邮政编码。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^(\d{5}(-\d{4})?$</p>
            </td>
            <td>
            <p>与前一个相同，但更有效。使用 ? 可使模式中的 4 位数字成为可选部分，而不是要求分别比较不同的两个模式（通过另一种方式）。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^[+-]?\d+(\.\d+)?$</p>
            </td>
            <td>
            <p>匹配任意有可选符号的实数。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^[+-]?\d*\.?\d*$</p>
            </td>
            <td>
            <p>与上一个相同，但也匹配空字符串。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>^(20|21|22|23|[01]\d)[0-5]\d$</p>
            </td>
            <td>
            <p>匹配 24 小时制时间值。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>/\*.*\*/</p>
            </td>
            <td>
            <p>匹配 C 语言风格的注释 /* ... */</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection148121120120">ASP.NET 中的验证</h3>
<p>ASP.NET 提供了一套验证控件，与使用旧的（或愿意的话使用传统的） ASP 处理任务相比，验证控件使在 Web  窗体上验证输入变得非常容易。其中一个非常有效的验证器是  <strong>RegularExpressionValidator</strong>，如您所料，它允许您提供必须匹配输入的正则表达式来验证输入。设置控件的  <strong>ValidationExpression</strong> 属性可指定正则表达式的模式。下面显示了验证邮政代码字段的验证程序：</p>
<pre>&lt;asp:RegularExpressionValidator runat=&quot;server&quot; id=&quot;ZipCodeValidator&quot; <br />ControlToValidate=&quot;ZipCodeTextBox&quot; ErrorMessage=&quot;Invalid ZIP code <br />format; format should be either 12345 or 12345-6789.&quot;  <br />ValidationExpression=&quot;(\d{5}(-\d{4})?&quot; /&gt;</pre>
<p>使用 <strong>RegularExpressionValidator</strong> 要注意几个问题：</p>
<ul>
    <li>
    <p>决不要使用验证程序要验证的控件中的空字符串来激活验证器。只有 RequiredFieldValidator 才可以捕获空字符串。</p>
    </li>
    <li>
    <p>您无需指定匹配字符的开始与结尾（<strong>^</strong> 和<strong>$</strong>）- 它们是事先假设的。如果添加了开始与结尾，也没有任何影响，不需要这样做。</p>
    </li>
    <li>
    <p>对于所有验证控件来说，必须在客户端以及服务器端进行验证。如果正则表达式不是 ECMAScript  兼容方式，客户端验证将失败。为了避免这种情况，确保表达式是 ECMAScript 兼容方式，否则只在服务器端进行控件验证。</p>
    </li>
</ul>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection151121120120">正则表达式 API</h3>
<p>除了 ASP.NET 验证控件，在.NET 中使用正则表达式的大多数情况都要使用  <strong>System.Text.RegularExpressions</strong> 命名空间中发现的类。特别是那些您希望熟悉的主类  <strong>Regex</strong>、<strong>Match</strong> 和 <strong>MatchCollection</strong>。</p>
<p>顺便说一下，正则表达式缩写样式 regex 的发音究竟是 /reg-eks/ 还是  /rej-eks/，还有一些争议。本人倾向于后者，但两种发音都有专家赞同，所以选择哪个发音由您自己决定。</p>
<p><strong>Regex</strong> 类有大量的方法和属性，如果您以前没有用过它，可能会感到无所适从。下面汇总了一些最常用的方法：</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>方法</p>
            </th>
            <th>
            <p>说明</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>Escape / Unescape</p>
            </td>
            <td>
            <p>字符串中的转义元字符，用作表达式中的文字。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>IsMatch</p>
            </td>
            <td>
            <p>如果正则表达式在输入字符串中发现匹配，返回&ldquo;Ture&rdquo;。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Match</p>
            </td>
            <td>
            <p>如果在输入字符串中发现匹配，则返回匹配对象。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Matches</p>
            </td>
            <td>
            <p>如果在输入字符串中发现包含任何或全部匹配，则返回匹配集合对象。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Replace</p>
            </td>
            <td>
            <p>用给定的替换字符串替换输入字符串中的匹配。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Split</p>
            </td>
            <td>
            <p>将输入字符串拆分成用正则表达式匹配分开的数组元素时，返回数组字符串。</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<p>除了指定很多方法外，还有一些选项可以指定，通常在 <strong>Regex</strong>  对象构造函数中。由于这些选项是位屏蔽的一部分，或许可以同时指定这些选项（如，可以同时指定 Multiline 和 Singleline）。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>方法</p>
            </th>
            <th>
            <p>说明</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>Compiled</p>
            </td>
            <td>
            <p>当在循环中执行许多匹配操作时使用此选项。这可以节省每一循环的分析表达式步骤。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>Multiline</p>
            </td>
            <td>
            <p>它与输入字符串中的行数没有关系。确切地说，它只修改 <strong>^</strong> 和 <strong>$</strong> 的方式，以便匹配行开始 (BOL) 和行结尾  (EOL)，而不是匹配整个输入字符串的开始和结尾。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>IgnoreCase</p>
            </td>
            <td>
            <p>使模式在匹配搜索字符串时忽略大小写。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>IgnorePatternWhitespace</p>
            </td>
            <td>
            <p>允许根据需要在模式中包括任意数量的空白区域，也支持使用 (?# 注释 #) 语法在模式中加入注释。</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>SingleLine</p>
            </td>
            <td>
            <p>它与输入字符串中的行数没有关系。更确切地说，它将导致 <strong>.</strong>（句点）元字符匹配任意字符，而不是除 \n  之外的任意字符（默认情况）。</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<p>使用正则表达式常执行的操作包括：验证、匹配和替换。大多数情况下，可以使用 <strong>Regex</strong> 类的静态方法完成这些操作，不需要实例化  <strong>Regex</strong> 类本身。要执行验证，全部要做的就是必建或找到正确的表达式，然后使用 <strong>Regex</strong> 类的 IsMatch()  方法将表达式应用到输入字符串中。例如，下面的函数演示了如何使用正则表达式验证邮政编码：</p>
<pre>private void ValidateZipButton_Click(object sender, System.EventArgs e)<br />{<br />   String ZipRegex = @&quot;^\d{5}$&quot;;<br />   if(Regex.IsMatch(ZipTextBox.Text, ZipRegex))<br />   {<br />      ResultLabel.Text = &quot;ZIP is valid!&quot;;<br />   }<br />   else<br />   {<br />      ResultLabel.Text = &quot;ZIP is invalid!&quot;;<br />   }<br />}</pre>
<p>类似的，可以使用静态 Replace() 方法将匹配替换为特定字符串，如下所示：</p>
<pre>String newText = Regex.Replace(inputString, pattern, replacementText);</pre>
<p>最后，可以使用如下代码遍历输入字符串的匹配集合：</p>
<pre>private void MatchButton_Click(object sender, System.EventArgs e)<br />{<br />   MatchCollection matches = Regex.Matches(SearchStringTextBox.Text, <br />MatchExpressionTextBox.Text);<br />   MatchCountLabel.Text = matches.Count.ToString();<br />   MatchesLabel.Text = &quot;&quot;;<br />   foreach(Match match in matches)<br />   {<br />      MatchesLabel.Text += &quot;Found&quot; + match.ToString() + &quot; at <br />position &quot; + match.Index + &quot;.&lt;br&gt;&quot;;<br />   }<br />}</pre>
<p>通常，在您需要指定默认方式以外的方式时，需要实例化 <strong>Regex</strong> 类的实例。特别是在设置选项时。例如，要创建忽略大小写和模式空白区域的  Regex 实例，然后检索与该表达式匹配的集合，则应使用如下代码：</p>
<pre>Regex re = new Regex(pattern, <br />&nbsp;&nbsp;&nbsp;RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);<br />MatchCollection mc = re.Matches(inputString);</pre>
<p>本文的下载文件中包括这些示例的完整使用版本，与简单 ASP.NET 页中的一样。</p>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection154121120120">免费工具</h3>
<p>Regulator (<a href="http://royo.is-a-geek.com/iserializable/regulator/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl07',this);" id="ctl00_rs1_mainContentContainer_ctl07">http://royo.is-a-geek.com/iserializable/regulator/</a>)  - 一种在客户端运行的正则表达式测试工具，通过 Web 服务与 RegexLib  紧密集成，提供对&ldquo;匹配&rdquo;、&ldquo;拆分&rdquo;和&ldquo;替换&rdquo;等的支持。包括性能分析和语法突出显示功能。</p>
<p>RegexDesigner.NET (<a href="http://www.sellsbrothers.com/tools/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl08',this);" id="ctl00_rs1_mainContentContainer_ctl08">http://www.sellsbrothers.com/tools/</a>)  - 一种功能强大的可视工具，可帮助构造并测试正则表达式。它可生成 C# 和/或 VB.NET 代码和已编译汇编代码，帮助您将表达式集成到应用程序中。</p>
<p>Regular Expression Workbench (v2.0) (<a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=C712F2DF-B026-4D58-8961-4EE2729D7322" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl09',this);" id="ctl00_rs1_mainContentContainer_ctl09">http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=C712F2DF-B026-4D58-8961-4EE2729D7322</a>)  - Eric Gunnerson  开发的工具，用于创建、测试和研究正则表达式。具有&ldquo;Examine-o-matic&rdquo;功能，允许将鼠标悬停在正则表达式的上方，对其含义进行解码。</p>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection157121120120">高级主题</h3>
<p>正则表达式有两个不得不说的功能，一个是&ldquo;命名组&rdquo;，另一个是&ldquo;四向处理&rdquo;(lookaround  processing)。由于这些功能很少使用，此处只简单阐述一下。</p>
<p>使用命名组，您可单独命名匹配组，然后在表达式中使用程序语言引用这些组。如果结合 Replace  方法重新设置输入字符串的格式（通过重新排列顺序、替换输入字符串中的元素），这个功能特别有效。例如，假设日期使用 MM/DD/YYYY  格式的字符串，而您希望日期格式是  DD-MM-YYYY。此时，可编写一个表达式捕获第一种格式，遍历它的匹配集合，并分析每个字符串，然后使用字符串操作建立替换字符串。这需要大量的代码和大量的处理。如果使用命名组，您可完成同样的任务，具体见下：</p>
<pre>String MDYToDMY(String input)<br />{<br />   return Regex.Replace(intput, @&quot;\b(?&lt;month&gt;\d{1,2})/(?&lt;day&gt;\d{1,2}/(?&lt;year&gt;\d{4})\b&quot;, &quot;${day}-<br />${month}-${year}&quot;);<br />}</pre>
<p>您还可以按编号或按名称引用组。在任何情况下，这种引用通称作&ldquo;反向引用&rdquo;。另一个经常使用反向引用的场合在匹配表达式本身，如下这个表达式用于查找重复的字母：<strong>[a-z]\1</strong>。它将匹配&ldquo;aa&rdquo;、&ldquo;bb&rdquo;、&ldquo;cc&rdquo;，但它不同于  <strong>[a-z]{2}</strong> 或  <strong>[a-z][a-z]</strong>，后两者是等效的，后两者允许匹配&ldquo;ab&rdquo;或&ldquo;ac&rdquo;或任何其他两个字母的组合。反向引用允许表达式记住表达式已经分析并匹配过的输入字符串中的部分字符。</p>
<p>&ldquo;四向处理&rdquo;指很多正则表达式引擎所支持的正负 Lookahead 和 Lookbehind  功能。并不是所有的正则表达式引擎都支持验证四向处理。这些构造不使用字符，即使它们可以匹配字符。有些模式可能在不使用四向处理的情况下无法描述。特别是当模式中存在的一部分依赖于另一部分，如果不使用四向处理，则不能描述这样的模式。下面介绍了每个四向处理的语法。</p>
<table>
    <tbody>
        <tr>
            <th>
            <p>语法</p>
            </th>
            <th>
            <p>说明</p>
            </th>
        </tr>
        <tr>
            <td>
            <p>(?=...)</p>
            </td>
            <td>
            <p>正 Lookahead</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>(?!...)</p>
            </td>
            <td>
            <p>负 Lookahead</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>(?&lt;=...)</p>
            </td>
            <td>
            <p>正 Lookbehind</p>
            </td>
        </tr>
        <tr>
            <td>
            <p>(?&lt;!...)</p>
            </td>
            <td>
            <p>负 Lookbehind</p>
            </td>
        </tr>
    </tbody>
</table>
<table>
    <tbody>
    </tbody>
</table>
<p>密码验证是必需四向处理的一个示例。假定在密码限制中，密码必须介于 4 到 8 个字符，且必须至少包含一个数字。为此，您可以仅在匹配中测试  <strong>\d</strong>，然后使用字符串操作来测试长度。但要在正则表达式中实现这一切，必须使用 Lookahead。特别是正  lookahead，如下所示：<strong>^(?=.*\d).{4,8}$</strong></p>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection160121120120">结论</h3>
<p>正则表达式是一种描述文本模式的极有效方法，它使文本模式成为字符串验证和操作的极好资源。.NET Framework 通过  <strong>System.Text.RegularExpressions</strong> 命名空间（特别是其中的 <strong>Regex</strong>  类）提供了对正则表达式的强大支持。使用 API  很简单，但编写正确的正则表达式通常比较费力。但幸运的是，正则表达式可以重复使用，您可以通过网络中的各种联机资源，从中找出其他人设计的表达式，或者在创建表达式遇到困难时得到帮助。</p>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection163121120120">资源</h3>
<p>正则表达式库 <a href="http://www.regexlib.com/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl10',this);" id="ctl00_rs1_mainContentContainer_ctl10">http://www.regexlib.com/</a></p>
<p>正则表达式讨论列表 <a href="http://aspadvice.com/login.aspx?ReturnUrl=/SignUp/list.aspx?l=68&amp;c=16&amp;l=68&amp;c=16" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl11',this);" id="ctl00_rs1_mainContentContainer_ctl11">http://aspadvice.com/login.aspx?ReturnUrl=%2fSignUp%2flist.aspx%3fl%3d68%26c%3d16&amp;l=68&amp;c=16</a></p>
<p>正则表达式论坛 <a href="http://forums.regexadvice.com/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl12',this);" id="ctl00_rs1_mainContentContainer_ctl12">http://forums.regexadvice.com/</a></p>
<p>正则表达式 Web 日志 <a href="http://blogs.regexadvice.com/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl13',this);" id="ctl00_rs1_mainContentContainer_ctl13">http://blogs.regexadvice.com/</a></p>
<p>Mastering Regular Expressions (O'Reilly)，作者 Jeffrey Friedl <a href="http://www.regex.info/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl14',this);" id="ctl00_rs1_mainContentContainer_ctl14">http://www.regex.info/</a></p>
<p>.NET 正则表达式参考 <a href="http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemTextRegularExpressions.asp" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl15',this);" id="ctl00_rs1_mainContentContainer_ctl15">http://msdn.microsoft.com/library/en-us/cpref/html/frlrfSystemTextRegularExpressions.asp</a></p>
<p>Jscript 正则表达式语法 <a href="http://www.msdn.microsoft.com/library/en-us/script56/html/js56jsgrpRegExpSyntax.asp" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl16',this);" id="ctl00_rs1_mainContentContainer_ctl16">http://www.msdn.microsoft.com/library/en-us/script56/html/js56jsgrpRegExpSyntax.asp</a></p>
<p>正则表达式信息 <a href="http://www.regular-expressions.info/" onclick="javascript:Track('ctl00_rs1_mainContentContainer_ctl00|ctl00_rs1_mainContentContainer_ctl17',this);" id="ctl00_rs1_mainContentContainer_ctl17">http://www.regular-expressions.info/</a></p>
<div><a href="#mainSection"><img border="0" src="http://i.msdn.microsoft.com/ms972966.arrow_px_up(zh-cn,MSDN.10).gif" alt="" />  </a><a href="#mainSection">返回页首</a></div>
<h3 id="XSLTsection166121120120">作者简介</h3>
<p>Steven A. Smith 是 Microsoft 在 ASP.NET 技术方面的最有价值专家 (MVP)，是 ASPAlliance.com 和  DevAdvice.com 的总裁和所有者。此外，他也是 ASPSmith Ltd（一家重点提供 .NET  培训的公司）的所有者和首席教师。他撰写了两本著作：&ldquo;ASP.NET Developer's Cookbook&rdquo;和&ldquo;ASP.NET By Example&rdquo;，并在  MSDN 和 AspNetPRO 杂志上发表了一些文章。Steve 每年都在各种会议上发表演讲，是 INETA 联络处的成员。Steve  拥有企业管理硕士学位及计算机科学工程理学士学位。</p>
<p>如果要联系 Steve，请发送电子邮件至 <a href="mailto:ssmith@aspalliance.com"><em>ssmith@aspalliance.com</em></a>。</p>
</div>
</div>
</div>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=959</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2009-01-07 10:13</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=953</guid>
			<title>CS0115: “*.GetTypeHashCode() 没有找到适合的方法来重写</title>
			<author>Calchas</author>
			<description><![CDATA[<p>检查CS文件的类名与ASPX文件引用的类名是否一致。</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=953</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2008-12-19 15:00</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=944</guid>
			<title>动易后台模板：未将对象引用设置到对象的实例</title>
			<author>Calchas</author>
			<description><![CDATA[<p><font face="Verdana"><font face="Verdana">模板管理设置页面</font>出现这样的错误：</font></p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml">
    <li class="alt"><span><span>&nbsp;&ldquo;/&rdquo;应用程序中的服务器错误。&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;--------------------------------------------------------------------------------&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;未将对象引用设置到对象的实例。&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;说明:&nbsp;执行当前&nbsp;Web&nbsp;请求期间，出现未处理的异常。请检查堆栈跟踪信息，以了解有关该错误以及代码中导致错误的出处的详细信息。&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;异常详细信息:&nbsp;System.NullReferenceException:&nbsp;未将对象引用设置到对象的实例。&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;源错误:&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;执行当前&nbsp;Web&nbsp;请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;堆栈跟踪:&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;[NullReferenceException:&nbsp;未将对象引用设置到对象的实例。]&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;PowerEasy.Templates.LabelManage.GetLabelList(String&nbsp;type)&nbsp;+342&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;PowerEasy.WebSite.Admin.Template.TemplateUI.BuildLabelList(String&nbsp;typename)&nbsp;+54&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;PowerEasy.WebSite.Admin.Template.TemplateUI.InitPage()&nbsp;+1005&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;PowerEasy.WebSite.Admin.Template.TemplateUI.Page_Load(Object&nbsp;sender,&nbsp;EventArgs&nbsp;e)&nbsp;+10&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr&nbsp;fp,&nbsp;Object&nbsp;o,&nbsp;Object&nbsp;t,&nbsp;EventArgs&nbsp;e)&nbsp;+15&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object&nbsp;sender,&nbsp;EventArgs&nbsp;e)&nbsp;+33&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;System.Web.UI.Control.OnLoad(EventArgs&nbsp;e)&nbsp;+99&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;System.Web.UI.Control.LoadRecursive()&nbsp;+47&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;System.Web.UI.Page.ProcessRequestMain(Boolean&nbsp;includeStagesBeforeAsyncPoint,&nbsp;Boolean&nbsp;includeStagesAfterAsyncPoint)&nbsp;+1436&nbsp; &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>标签管理列表出现这样的错误：</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml">
    <li class="alt"><span><span>&nbsp;&ldquo;/&rdquo;应用程序中的服务器错误。&nbsp; &nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;--------------------------------------------------------------------------------&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;未将对象引用设置到对象的实例。&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;说明:&nbsp;执行当前&nbsp;Web&nbsp;请求期间，出现未处理的异常。请检查堆栈跟踪信息，以了解有关该错误以及代码中导致错误的出处的详细信息。&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;异常详细信息:&nbsp;System.NullReferenceException:&nbsp;未将对象引用设置到对象的实例。&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>源错误:&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;执行当前&nbsp;Web&nbsp;请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;堆栈跟踪:&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>[NullReferenceException:&nbsp;未将对象引用设置到对象的实例。]&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>PowerEasy.Templates.LabelManage.GetLabelList(Int32&nbsp;type,&nbsp;Int32&nbsp;field,&nbsp;String&nbsp;keyword,&nbsp;String&nbsp;labelCategory)&nbsp;+443&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>[TargetInvocationException:&nbsp;调用的目标发生了异常。]&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.RuntimeMethodHandle._InvokeMethodFast(Object&nbsp;target,&nbsp;Object[]&nbsp;arguments,&nbsp;SignatureStruct&amp;&nbsp;sig,&nbsp;MethodAttributes&nbsp;methodAttributes,&nbsp;RuntimeTypeHandle&nbsp;typeOwner)&nbsp;+0&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.RuntimeMethodHandle.InvokeMethodFast(Object&nbsp;target,&nbsp;Object[]&nbsp;arguments,&nbsp;Signature&nbsp;sig,&nbsp;MethodAttributes&nbsp;methodAttributes,&nbsp;RuntimeTypeHandle&nbsp;typeOwner)&nbsp;+72&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Reflection.RuntimeMethodInfo.Invoke(Object&nbsp;obj,&nbsp;BindingFlags&nbsp;invokeAttr,&nbsp;Binder&nbsp;binder,&nbsp;Object[]&nbsp;parameters,&nbsp;CultureInfo&nbsp;culture,&nbsp;Boolean&nbsp;skipVisibilityChecks)&nbsp;+371&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.Reflection.RuntimeMethodInfo.Invoke(Object&nbsp;obj,&nbsp;BindingFlags&nbsp;invokeAttr,&nbsp;Binder&nbsp;binder,&nbsp;Object[]&nbsp;parameters,&nbsp;CultureInfo&nbsp;culture)&nbsp;+29&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod&nbsp;method,&nbsp;Boolean&nbsp;disposeInstance,&nbsp;Object&amp;&nbsp;instance)&nbsp;+480&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments&nbsp;arguments)&nbsp;+1960&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Web.UI.DataSourceView.Select(DataSourceSelectArguments&nbsp;arguments,&nbsp;DataSourceViewSelectCallback&nbsp;callback)&nbsp;+17&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.Web.UI.WebControls.DataBoundControl.PerformSelect()&nbsp;+149&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Web.UI.WebControls.BaseDataBoundControl.DataBind()&nbsp;+70&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.Web.UI.WebControls.GridView.DataBind()&nbsp;+4&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound()&nbsp;+82&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls()&nbsp;+69&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Web.UI.Control.EnsureChildControls()&nbsp;+87&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.Web.UI.Control.PreRenderRecursiveInternal()&nbsp;+50&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Web.UI.Control.PreRenderRecursiveInternal()&nbsp;+170&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.Web.UI.Control.PreRenderRecursiveInternal()&nbsp;+170&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Web.UI.Control.PreRenderRecursiveInternal()&nbsp;+170&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>System.Web.UI.Control.PreRenderRecursiveInternal()&nbsp;+170&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>System.Web.UI.Page.ProcessRequestMain(Boolean&nbsp;includeStagesBeforeAsyncPoint,&nbsp;Boolean&nbsp;includeStagesAfterAsyncPoint)&nbsp;+2041&nbsp; &nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p><font face="Verdana">原因： 模板目录下的&ldquo;标签库&rdquo;子目录中多了一个 LabelNavigate.xml 文件。。</font></p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=944</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2008-11-24 16:11</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=943</guid>
			<title>“/”应用程序中的服务器错误。</title>
			<author>Calchas</author>
			<description><![CDATA[<p><span>&nbsp; </span>
<p>&nbsp;</p>
<p><font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "><strong>说明: </strong>执行当前 Web 请求期间，出现未处理的异常。请检查堆栈跟踪信息，以了解有关该错误以及代码中导致错误的出处的详细信息。 <br />
<br />
<strong>异常详细信息: </strong>System.InvalidOperationException: 使用主题 css 文件要求页上有标头控件。(例如 &lt;head runat=&quot;server&quot; /&gt;</font></p>
<p>&nbsp;</p>
<p><font face="Arial">------------------</font></p>
<p>&nbsp;</p>
<p><font face="Arial">手动编写的代码使用动易的WEB.CONFIG时，数据升级其他程序出现的错误</font></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>解决办法：将动易配置文件里面的<br />
&nbsp;&nbsp;&nbsp; &lt;pages validateRequest=&quot;true&quot; styleSheetTheme=&quot;UserDefaultTheme&quot;&gt;</p>
<p>改为<br />
&nbsp;&lt;pages enableEventValidation=&quot;false&quot; viewStateEncryptionMode=&quot;Never&quot;&nbsp; enableViewStateMac=&quot;false&quot; styleSheetTheme=&quot;&quot;&gt;</p>
<p><span>这应该是因为</span><span>Asp.net2.0</span><span>引入</span><span>Theme</span><span>后，要求</span><span>&lt;Head&gt;</span><span>标签</span><em><span>runat=&quot;server&quot;</span></em></p>
</p>
<h1>&ldquo;/&rdquo;应用程序中的服务器错误。 <hr size="1" color="#c0c0c0" width="100%" />
</h1>
<h2><em>使用主题 css 文件要求页上有标头控件。(例如 &lt;head runat=&quot;server&quot; /&gt;)。</em></h2>
<p>&nbsp;</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=943</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2008-11-22 09:31</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=942</guid>
			<title>1.2 升级到2.0</title>
			<author>Calchas</author>
			<description><![CDATA[<h2><font face="宋体" color="#ff6600" size="3">1.2 升级到2.0后 只有首页和后台管理页面可以进去，点其他页面都出现一下问题</font>&nbsp;</h2>
<h2><em>TitleFontColor</em></h2>
<p><font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "><strong>Description: </strong>An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. <br />
<br />
<strong>Exception Details: </strong>System.IndexOutOfRangeException: TitleFontColor<br />
<br />
<strong>Source Error:</strong> <br />
<br />
<table width="100%" bgcolor="#ffffcc">
    <tbody>
        <tr>
            <td><code>An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.</code></td>
        </tr>
    </tbody>
</table>
</font></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>解决办法为：</p>
<p>&nbsp;</p>
<p>
<table cellspacing="0" cellpadding="0">
    <tbody>
        <tr>
            <td>
            <div id="textstyle_3" style="font-size: 11pt; overflow: hidden; word-break: break-all; text-indent: 24px; word-wrap: break-word">&nbsp;自己在PE_CommonModel 表加入以下字段试下：<br />
            <br />
            TitleFontColor &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nvarchar(255)<br />
            TitleFontType&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; nvarchar(255)<br />
            IncludePic&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; nvarchar(255)<br />
            ShowCommentLink&nbsp;&nbsp;&nbsp; bit<br />
            TitleHashKey&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; decimal(32,0)</div>
            </td>
        </tr>
    </tbody>
</table>
</p>
<p>&nbsp;</p>
<p>但是不知道是否有遗留问题。</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=942</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2008-11-22 09:28</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=941</guid>
			<title>多选 CheckBoxList 应用</title>
			<author>Calchas</author>
			<description><![CDATA[<p>从数据库中得到一个列表，然后存入 CheckBoxList 中多选，然后提交数据。</p>
<p>&nbsp;</p>
<p>ASPX</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">form</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;form1&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:SqlDataSource</span><span>&nbsp;</span><span class="attribute">ID</span><span>=</span><span class="attribute-value">&quot;SqlDataSource1&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span>&nbsp;</span><span class="attribute">ConnectionString</span><span>=</span><span class="attribute-value">&quot;&lt;%$&nbsp;ConnectionStrings:Connection&nbsp;String&nbsp;%&gt;&quot;</span><span>&nbsp;</span><span class="attribute">SelectCommand</span><span>=</span><span class="attribute-value">&quot;SELECT&nbsp;[ID],[EMAILNAME]&nbsp;FROM&nbsp;[MAIL]&nbsp;ORDER&nbsp;BY&nbsp;[ID]&nbsp;DESC&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:SqlDataSource</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:CheckBoxList</span><span>&nbsp;</span><span class="attribute">ID</span><span>=</span><span class="attribute-value">&quot;boxEmail&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span>&nbsp;</span><span class="attribute">DataSourceID</span><span>=</span><span class="attribute-value">&quot;SqlDataSource1&quot;</span><span>&nbsp;</span><span class="attribute">DataTextField</span><span>=</span><span class="attribute-value">&quot;EMAILNAME&quot;</span><span>&nbsp;</span><span class="attribute">DataValueField</span><span>=</span><span class="attribute-value">&quot;ID&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:CheckBoxList</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:Button</span><span>&nbsp;</span><span class="attribute">id</span><span>=</span><span class="attribute-value">&quot;UploadButton&quot;</span><span>&nbsp;</span><span class="attribute">Text</span><span>=</span><span class="attribute-value">&quot;上传资料信息&quot;</span><span>&nbsp;</span><span class="attribute">OnClick</span><span>=</span><span class="attribute-value">&quot;UploadButton_Click&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span>&nbsp;</span><span class="attribute">CssClass</span><span>=</span><span class="attribute-value">&quot;button&quot;</span><span class="tag">&gt;</span><span>&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">asp:Button</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;</span><span class="tag-name">asp:Label</span><span>&nbsp;</span><span class="attribute">ID</span><span>=</span><span class="attribute-value">&quot;txtbox&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span class="tag">&gt;</span><span class="tag">&lt;/</span><span class="tag-name">asp:Label</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">div</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="tag">&lt;/</span><span class="tag-name">form</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p>&nbsp;</p>
<p>CS</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">C#代码</div>
<ol class="dp-c">
    <li class="alt"><span><span class="keyword">protected</span><span>&nbsp;</span><span class="keyword">void</span><span>&nbsp;UploadButton_Click(</span><span class="keyword">object</span><span>&nbsp;sender,&nbsp;EventArgs&nbsp;e) &nbsp;&nbsp;</span></span></li>
    <li class=""><span>{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">string</span><span>&nbsp;s&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">for</span><span>&nbsp;(</span><span class="keyword">int</span><span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;boxEmail.Items.Count;&nbsp;i++) &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ListItem&nbsp;li&nbsp;=&nbsp;boxEmail.Items[i]; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(li.Selected) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(s&nbsp;==&nbsp;</span><span class="string">&quot;&quot;</span><span>) &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;li.Value; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">else</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s&nbsp;+=&nbsp;</span><span class="string">&quot;,&quot;</span><span>&nbsp;+&nbsp;li.Value; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">this</span><span>.txtbox.Text&nbsp;=&nbsp;s; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>}&nbsp;&nbsp;</span></li>
</ol>
</div>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=941</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2008-11-20 13:51</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=940</guid>
			<title>数据库链接、数据显示</title>
			<author>Calchas</author>
			<description><![CDATA[<div class="codeText">
<div class="codeHead">C#代码</div>
<ol class="dp-c">
    <li class="alt"><span>SQLHelper.SQLHelper&nbsp;dataAccess&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;SQLHelper.SQLHelper();&nbsp;&nbsp;</span></li>
    <li class="alt"><span>DataSet&nbsp;dsAdmin&nbsp;=&nbsp;</span><span class="keyword">new</span><span>&nbsp;DataSet(); &nbsp;&nbsp;</span></li>
    <li class=""><span class="keyword">string</span><span>&nbsp;strSql&nbsp;=&nbsp;</span><span class="string">&quot;select&nbsp;top&nbsp;1&nbsp;AdminName from&nbsp;PE_Admin</span><span class="string">&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>dataAccess.RunSQL(strSql,&nbsp;</span><span class="keyword">ref</span><span>&nbsp;dsAdmin);&nbsp;</span></li>
    <li class="alt"><span>DataTable&nbsp;dtAdmin&nbsp;=&nbsp;dsAdmin.Tables[0]; &nbsp;&nbsp;</span></li>
    <li class="alt"><span class="keyword">if</span><span>&nbsp;(dtAdmin.Rows.Count&nbsp;&gt;&nbsp;0) &nbsp;&nbsp;</span></li>
    <li class=""><span>{&nbsp;&nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span class="keyword">else</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>{ &nbsp;&nbsp;</span></li>
    <li class=""><span>} &nbsp;&nbsp;</span></li>
    <li class=""><span>dtAdmin.Clear(); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>dsAdmin.Clear(); &nbsp;&nbsp;</span></li>
    <li class=""><span>dataAccess.Close();&nbsp;&nbsp;</span></li>
</ol>
</div>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=940</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2008-11-19 16:54</pubDate>
		</item>
		<item>
			<guid>http://Lixf.net/?action=show&amp;id=939</guid>
			<title>asp.net 2.0中新增的AppendDataBoundItems</title>
			<author>Calchas</author>
			<description><![CDATA[<p>在asp.net 2.0中，新增了一个AppendDataBoundItems属性，十分方便，使可以在执行数据绑定之前将项添加到 listcontrol 对象中。执行数据绑定之后，项集合中包含数据源中的项以及以前添加的项。如果不在绑定数据之前清除列表项，则为 true；如果在执行数据绑定之前清除项集合，则为 false。默认为 false。 <br />
比如</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="codeText">
<div class="codeHead">XML/HTML代码</div>
<ol class="dp-xml">
    <li class="alt"><span><span class="tag">&lt;</span><span class="tag-name">asp:DropDownList</span><span>&nbsp;</span><span class="attribute">ID</span><span>=</span><span class="attribute-value">&quot;DropDownList1&quot;</span><span>&nbsp;</span><span class="attribute">AppendDataBoundItems</span><span>=</span><span class="attribute-value">&quot;true&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span>&nbsp;</span><span class="attribute">DataSourceID</span><span>=</span><span class="attribute-value">&quot;SqlDataSource1&quot;</span><span>&nbsp;</span><span class="attribute">DataTextField</span><span>=</span><span class="attribute-value">&quot;state&quot;</span><span>&nbsp;</span><span class="attribute">DataValueField</span><span>=</span><span class="attribute-value">&quot;state&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;</span><span class="tag-name">asp:ListItem</span><span>&nbsp;</span><span class="attribute">Text</span><span>=</span><span class="attribute-value">&quot;(Select&nbsp;a&nbsp;State)&quot;</span><span>&nbsp;</span><span class="attribute">Value</span><span>=</span><span class="attribute-value">&quot;&quot;</span><span>&nbsp;</span><span class="tag">/&gt;</span><span>&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class=""><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span class="tag">&lt;/</span><span class="tag-name">asp:DropDownList</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class=""><span class="tag">&lt;</span><span class="tag-name">asp:SqlDataSource</span><span>&nbsp;</span><span class="attribute">ID</span><span>=</span><span class="attribute-value">&quot;SqlDataSource1&quot;</span><span>&nbsp;</span><span class="attribute">runat</span><span>=</span><span class="attribute-value">&quot;server&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span class="attribute">ConnectionString</span><span>=</span><span class="attribute-value">&quot;&lt;%$&nbsp;ConnectionStrings:pubsConnectionString&nbsp;%&gt;&quot;</span><span>&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span class="attribute">SelectCommand</span><span>=</span><span class="attribute-value">&quot;SELECT&nbsp;DISTINCT&nbsp;[state]&nbsp;FROM&nbsp;[authors]&quot;</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li class=""><span class="tag">&lt;/</span><span class="tag-name">asp:SqlDataSource</span><span class="tag">&gt;</span><span>&nbsp;&nbsp;</span></li>
</ol>
</div>
<p><br />
&nbsp; 则为dropdownlist的第一项增加了一个要求用户选择的提示的信息，而在与sqldatasource或其他数据源绑定后，其不会消失</p>]]></description>
			<link>http://Lixf.net/?action=show&amp;id=939</link>
			<category domain="http://Lixf.net/?cid=16">ASP.NET</category>
			<pubDate>2008-11-19 14:20</pubDate>
		</item>
	</channel>
</rss>
