﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-ppchen（陈荣林）</title><link>http://www.cnblogs.com/ppchen/</link><description>。。。。。年轻没有什么不可以</description><language>zh-cn</language><lastBuildDate>Thu, 21 Aug 2008 06:47:10 GMT</lastBuildDate><pubDate>Thu, 21 Aug 2008 06:47:10 GMT</pubDate><ttl>60</ttl><item><title>Excel2007操作类库</title><link>http://www.cnblogs.com/ppchen/archive/2008/03/21/1103710.html</link><dc:creator>ppchen（陈荣林）</dc:creator><author>ppchen（陈荣林）</author><pubDate>Fri, 21 Mar 2008 15:10:00 GMT</pubDate><guid>http://www.cnblogs.com/ppchen/archive/2008/03/21/1103710.html</guid><wfw:comment>http://www.cnblogs.com/ppchen/comments/1103710.html</wfw:comment><comments>http://www.cnblogs.com/ppchen/archive/2008/03/21/1103710.html#Feedback</comments><slash:comments>31</slash:comments><wfw:commentRss>http://www.cnblogs.com/ppchen/comments/commentRss/1103710.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ppchen/services/trackbacks/1103710.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;发布一个最近完成的Excel2007操作类库，可以在没有安装Office的机器上快速读写和操作Excel2007格式文件，不过还是需要.net framework2.0 &nbsp;:)。生成效率比较高，写入10000行50列的数据只需12秒，如果数据是纯数字还会更快，我的机器<font face="Verdana">Pentium M 1.8G CPU 1.25G Memory。</font><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;Office2007中的Excel,Word,PowedPoint使用了OpenXml文件格式，文件是一个标准的zip压缩包，只需要简单的将文件的扩展名更改为.zip，就能看到其内部的具体内容，大部分是标准的xml文件，所以类库主要的任务就是操作xml。Excel2007的操作类库目前已经有人写过了如：<font face="Verdana"><a title="ExcelPackage" href="http://www.codeplex.com/ExcelPackage" target="_blank">ExcelPackage</a></font>，最初因为项目需要也曾经改造过改类库，试图将之封装成可以结合报表数据分析工具的Excel2007报表生成工具，但是ExcelPackage内部的操作全部基于XmlDocument，效率低，生成简单的报表还可以，数据量稍微有点大就处理不过来了。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;开始研究怎么样才能提高效率的时候，思索了一阵子，基于XmlDocument的操作，涉及了XPath等操作都是基于文档的，许多XPath的查询都是需要遍历文档的，即使再怎么优化XPath也不能提高太多的效率。后面老大提醒了我，应该把所有XML的操作都放到内存当中去做，把Excel文件中的XML文档内容映射到内存中的自定义对象，在操作完成后再将内存中的对象写回zip压缩包中去。没错就是这个思路...<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;编写这个类库的时候使用了<font face="Verdana">System.IO.Packaging这个名称空间，该空间内提供了一些对zip文件的操作类，该空间位于<font face="Verdana">WindowsBase.dll中，是一个.net3.x的库，其实还有一个可以实现和System.IO.Pacakaging类似功能的类库<font face="Verdana">SharpZipLib，只是</font>之前在编写Excel2007操作类库的时候还不知道<font face="Verdana">，暂且从已经安装了.net3.x的同事那拷贝了WindwsBase.dll过来用，还好能顺利的在VS2005中引用且能正常使用。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;此类库目前已经结合一个报表数据分析引擎，在一个中型Web系统中实现Excel2007报表的功能。</font></font></font>&nbsp; <br />
<br />
下载：<br />
<a title="Excel.OfficeXml" href="/Files/ppchen/Excel.OfficeXml.ConsoleTest.rar">Excel.OpenXml</a><br />
<br />
如果你现在使用旧版office的话，可点<a title="这里" href="http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&amp;FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466" target="_blank">这里</a>下载格式转换工具，让你的office也支持OOXML。<br />
 <img src ="http://www.cnblogs.com/ppchen/aggbug/1103710.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41819/" target="_blank">[新闻]英特尔雅虎开发网络计算机频道</a>]]></description></item><item><title>判断Assembly编译模式的小工具</title><link>http://www.cnblogs.com/ppchen/archive/2008/03/18/1111281.html</link><dc:creator>ppchen（陈荣林）</dc:creator><author>ppchen（陈荣林）</author><pubDate>Tue, 18 Mar 2008 13:12:00 GMT</pubDate><guid>http://www.cnblogs.com/ppchen/archive/2008/03/18/1111281.html</guid><wfw:comment>http://www.cnblogs.com/ppchen/comments/1111281.html</wfw:comment><comments>http://www.cnblogs.com/ppchen/archive/2008/03/18/1111281.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ppchen/comments/commentRss/1111281.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ppchen/services/trackbacks/1111281.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;Assembly发布时可以使用Debug或Release方式，关于Debug和Release的比较园子里已经有很多了，毫无疑问，Debug版本包含Debug信息，只是在开发的时候带来调试的方便，编译器并不对其中的代码进行优化处理，而Release版本无论是在效率或是稳定性上都要高于Debug版本。所以在部署时最好是要确认一下是否使用了Release版本。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;AssemblyCheckTool是一个用于读取检查.NET程序或程序集编译状态的小工具，其原理是通过反射读取Assembly信息，并判断<font face="Verdana">DebuggableAttribute属性值来完成的，核心部分代码如下：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;判断是否为Debug模式<br />
</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;Author:ppchen<br />
</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br />
</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;IsAssemblyDebugBuild(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;filepath)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;IsAssemblyDebugBuild(Assembly.LoadFile(Path.GetFullPath(filepath)));<br />
}<br />
<br />
</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;IsAssemblyDebugBuild(Assembly&nbsp;asm)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">object</span><span style="color: #000000">[]&nbsp;objs&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;asm.GetCustomAttributes(</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(System.Diagnostics.DebuggableAttribute),&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(objs.Length&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DebuggableAttribute&nbsp;debugAtt&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;objs[</span><span style="color: #800080">0</span><span style="color: #000000">]&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;DebuggableAttribute;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(debugAtt&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;debugAtt.IsJITTrackingEnabled;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />
}</span></div>
<br />
上一个程序的截图：<br />
<img height="368" alt="" src="http://www.cnblogs.com/images/cnblogs_com/ppchen/AssemblyCheckTool.JPG" width="423" border="0" /><br />
<br />
程序下载：<br />
<a title="AssemblyCheckTool" href="/Files/ppchen/AssemblyCheckTool.rar">AssemblyCheckTool</a><br />
</font>
   <img src ="http://www.cnblogs.com/ppchen/aggbug/1111281.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41818/" target="_blank">[新闻]Windows Live视频邮件9月9日开始测试</a>]]></description></item><item><title>URL太长导致参数被截断的问题</title><link>http://www.cnblogs.com/ppchen/archive/2008/03/18/1109607.html</link><dc:creator>ppchen（陈荣林）</dc:creator><author>ppchen（陈荣林）</author><pubDate>Tue, 18 Mar 2008 06:05:00 GMT</pubDate><guid>http://www.cnblogs.com/ppchen/archive/2008/03/18/1109607.html</guid><wfw:comment>http://www.cnblogs.com/ppchen/comments/1109607.html</wfw:comment><comments>http://www.cnblogs.com/ppchen/archive/2008/03/18/1109607.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ppchen/comments/commentRss/1109607.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ppchen/services/trackbacks/1109607.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp;做Web开发时经常涉及到页面之间的转跳，页面之间的转跳就会涉及到页面之间参数的传递，通过URL传递参数是常用的方法之一，但是微软说："Maximum URL length is 2,083 characters in Internet Explorer"，也就是说URL是有长度限制的。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;ASP.NET应用程序前台与后台的数据交换都是通过FORM表单来完成的，FORM表单提供了两种数据传输方式：GET和POST，这个两种数据传输方式在实际传输中有很大的不同，但ASP.NET框架中已经屏蔽了二者的一些差异。GET是用来从服务器上获得数据，而POST是用来向服务器提交数据的。二者<font face="Verdana">数据传输过程中分别对应了HTTP协议中的GET和POST方法。<br />
</font><br />
&nbsp;&nbsp;&nbsp;&nbsp;GET方式是把参数数据队列加到提交表单的ACTION属性所指的URL后面，并且使用"?"隔开，值和表单内各个字段一一对应，在URL中可以看到，它是FROM默认的提交方式，受URL长度的限制，它所能传递的数据量小。<br />
&nbsp;&nbsp;&nbsp;&nbsp;POST方式是把表单中的数据放在FORM载体中，<font face="Verdana">按照变量和值相对应的方式，传递到ACTION所指向URL，POST可以传递大数据量的信息到服务器，通常文件上传就是使用POST方式上传。<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;为解决GET方式传递大数据量参数的问题，要使用POST方式进行数据提交，下面是一个用来代替window.open的方法<br />
1.JavaScript<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #008000">/*</span><span style="color: #008000"><br />
&nbsp;*&nbsp;PostNewWin<br />
&nbsp;*&nbsp;Author:ppchen<br />
&nbsp;</span><span style="color: #008000">*/</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;PostNewWin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">function</span><span style="color: #000000">(url){<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;urlArr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;url.split(</span><span style="color: #000000">"</span><span style="color: #000000">?</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;postUrl&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;urlArr[</span><span style="color: #000000">0</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;postData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;urlArr[</span><span style="color: #000000">1</span><span style="color: #000000">];<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;iframe&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">postData_iframe</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #000000">!</span><span style="color: #000000">iframe){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iframe&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.createElement(</span><span style="color: #000000">"</span><span style="color: #000000">iframe</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iframe.id&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">postData_iframe</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iframe.scr</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">about:blank</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iframe.frameborder&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iframe.style.width&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">0px</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iframe.style.height&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">0px</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">var</span><span style="color: #000000">&nbsp;form&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;document.createElement(</span><span style="color: #000000">"</span><span style="color: #000000">form</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.id&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">postData_form</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.method&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">post</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;form.target&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">_blank</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;document.body.appendChild(iframe);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iframe.contentWindow.document.write(</span><span style="color: #000000">"</span><span style="color: #000000">&lt;body&gt;</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;form.outerHTML&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;/body&gt;</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;iframe.contentWindow.document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">postData_form</span><span style="color: #000000">"</span><span style="color: #000000">).innerHTML&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">&lt;input&nbsp;name='postData'&nbsp;id='postData'&nbsp;type='text'&nbsp;value='</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;postData&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">'/&gt;</span><span style="color: #000000">"</span><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;iframe.contentWindow.document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">postData_form</span><span style="color: #000000">"</span><span style="color: #000000">).action&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;postUrl;<br />
&nbsp;&nbsp;&nbsp;&nbsp;iframe.contentWindow.document.getElementById(</span><span style="color: #000000">"</span><span style="color: #000000">postData_form</span><span style="color: #000000">"</span><span style="color: #000000">).submit();<br />
};</span></div>
&nbsp;<br />
2.CSharp<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;从Form中取得参数<br />
</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;Author:ppchen<br />
</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;returns&gt;</span><span style="color: #008000">参数集合</span><span style="color: #808080">&lt;/returns&gt;</span><span style="color: #808080"><br />
</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;NameValueCollection&nbsp;ParseFormData()<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;NameValueCollection&nbsp;sQueryString&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;NameValueCollection();<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">this</span><span style="color: #000000">.Request.Form.Count&nbsp;</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.Request.Form[</span><span style="color: #800000">"</span><span style="color: #800000">postData</span><span style="color: #800000">"</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sPostData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span><span style="color: #000000">.Request.Form[</span><span style="color: #800000">"</span><span style="color: #800000">postData</span><span style="color: #800000">"</span><span style="color: #000000">].ToString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sPostData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sPostData.Trim(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[]&nbsp;{&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">&amp;</span><span style="color: #800000">'</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">&nbsp;</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;});<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #0000ff">string</span><span style="color: #000000">.IsNullOrEmpty(sPostData))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;sParameterList&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sPostData.Split(</span><span style="color: #800000">'</span><span style="color: #800000">&amp;</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;sParameterList.Length;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;sParameter&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sParameterList[i].Split(</span><span style="color: #800000">'</span><span style="color: #800000">=</span><span style="color: #800000">'</span><span style="color: #000000">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;j&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;sParameter.Length;&nbsp;j&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;j&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">2</span><span style="color: #000000">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sQueryString.Add(sParameter[j],&nbsp;HttpUtility.UrlDecode(sParameter[j&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">]));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;sQueryString;<br />
}</span></div>
<br />
通过以上的JS代码在客户端打开页面，通过以上的CS代码在服务端取得参数，这样使用了POST方式解决了GET方式中URL的长度限制，可以传递大数据量的参数了：）</font><br />
<br />
测试代码下载：<br />
<a title="PostNewWin" href="/Files/ppchen/ppchen.PostNewWin.rar" target="_blank">PostNewWin</a> 
<img src ="http://www.cnblogs.com/ppchen/aggbug/1109607.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41818/" target="_blank">[新闻]Windows Live视频邮件9月9日开始测试</a>]]></description></item><item><title>今天天蓝</title><link>http://www.cnblogs.com/ppchen/archive/2007/06/28/798782.html</link><dc:creator>ppchen（陈荣林）</dc:creator><author>ppchen（陈荣林）</author><pubDate>Thu, 28 Jun 2007 04:49:00 GMT</pubDate><guid>http://www.cnblogs.com/ppchen/archive/2007/06/28/798782.html</guid><wfw:comment>http://www.cnblogs.com/ppchen/comments/798782.html</wfw:comment><comments>http://www.cnblogs.com/ppchen/archive/2007/06/28/798782.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ppchen/comments/commentRss/798782.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ppchen/services/trackbacks/798782.html</trackback:ping><description><![CDATA[好久没看到这样的天气了，记录一下。 
<img src ="http://www.cnblogs.com/ppchen/aggbug/798782.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/41817/" target="_blank">[新闻]Intel首次公开展示Nehalem架构迅驰3平台</a>]]></description></item></channel></rss>