﻿<?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>博客园-勇于挑战~突破自我~</title><link>http://www.cnblogs.com/ZHF/</link><description>向着目标前进，一切皆有可能</description><language>zh-cn</language><lastBuildDate>Wed, 03 Dec 2008 05:41:22 GMT</lastBuildDate><pubDate>Wed, 03 Dec 2008 05:41:22 GMT</pubDate><ttl>60</ttl><item><title>C#编写ActiveX在WEB中应用 </title><link>http://www.cnblogs.com/ZHF/archive/2008/12/02/1345520.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Tue, 02 Dec 2008 02:24:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/archive/2008/12/02/1345520.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1345520.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/archive/2008/12/02/1345520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1345520.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1345520.html</trackback:ping><description><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-size: 14pt">&nbsp; ActiveX控件支持自定义程序接口。利用这种方法，外部可以访问控件的事件和属性,利用了.net平台和COM的互操作性。修改项目属性的目的就是将.net控件注册为ActiveX控件。这样，你就可以把这个控件完全当作ActiveX控件来对待了,可以利用JS和VBS来调用(客户端安装.net framework)。Web开发者可以自动操作他们的Web页面，等同于一般的桌面应用的功能。ActiveX控件是以本地用户的身份运行，所以可以突破.net安全性的限制。<br />
<br />
<strong><span style="color: #333399"><strong>用C#编写ActiveX类</strong><br />
<br />
</span></strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 先写一个包含所有方法属性定义的接口ASignatures。通过在浏览器中执行JavaScript来访问这些方法或属性。接口中所有成员是抽象并公开的。ActiveX类Aclass继承自这个接口。在ActiveX类上我们必须指名其ClassInterfaceType是AutoDal（*注：指示自动为类生成双重接口并向COM公开。为该类接口生成类型信息并在类库中发布）。一般AutoDual是不被推荐使用的因为它有版本限制。我们这里采用只是出于学习的目的。在类中我们写两个方法Fname()和Sname()和一个属性Age。在例子中返回基本数据类型，其实它也可以实现更复杂的数据类型。<br />
</span><br />
using System;<br />
using System.Runtime.InteropServices;<br />
namespace ANamespace <br />
{<br />
<br />
&nbsp; public interface ASignatures<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp; string FName();<br />
&nbsp;&nbsp;&nbsp; string SName();<br />
&nbsp;&nbsp;&nbsp; int Age { get;}&nbsp; <br />
&nbsp; }<br />
<br />
&nbsp; [ClassInterface(ClassInterfaceType.AutoDual)]<br />
&nbsp; public class AClass :ASignatures<br />
&nbsp; {<br />
&nbsp;&nbsp;&nbsp; public string FName()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "Very";<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; public string SName()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return "Happy";<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; public int Age<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; get { return 24; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp; }<br />
}<br />
<br />
<strong style="color: #333399"><span style="font-size: 14pt"><strong style="color: #333399">编译ActiveX控件</strong><br />
</span></strong><br />
对那些不知道如何在Visual Studio IDE外编译的，你必需找到C#编译器 csc.exe在下列文件夹中：<br />
<br />
\WINDOWS\Microsoft.NET\Framework\v2.0.xxxxx <br />
<br />
把你的Aclass.cs文件在放在csc.exe这个文件夹中。进入命令行中执行如下命令：<br />
<br />
csc /t:library AClass.cs<br />
<br />
<span style="color: #333399">客户端注册组件<br />
</span><br />
你可以通过多种途径注册组件。例如：创建安装文件或者自解压文件可以迅速的从浏览器中下载。我们的示例简单的在客户端命令行模式进行注册。在相同的文件夹下执行下面命令：<br />
<br />
regasm AClass.dll /tlb /codebase<br />
<br />
必须确定客户端已经安装了.NET Framework。<br />
<br />
<span style="color: #333399">使用ActiveX控件<br />
</span><br />
通过JavaScript创建ActiveX控件，并调用方法和属性，返回的值显示在对话框中。下面代码告诉我们如何访问ActiveX控件的属性和方法。<br />
<br />
＜html＞<br />
＜head＞<br />
&nbsp; ＜script language="javascript"＞<br />
&nbsp;&nbsp;&nbsp; ＜!-- 读取 ActiveX 对象&nbsp; --＞<br />
&nbsp;&nbsp;&nbsp; var&nbsp;obj = new ActiveXObject("ANamespace.AClass");<br />
&nbsp;&nbsp;&nbsp; ＜!-- 访问方法 --＞<br />
&nbsp;&nbsp;&nbsp; alert(obj.FName());<br />
&nbsp;&nbsp;&nbsp; alert(obj.SName());<br />
&nbsp;&nbsp;&nbsp; ＜!-- 访问属性 --＞<br />
&nbsp;&nbsp;&nbsp; alert(obj.Age);<br />
&nbsp; ＜/script＞<br />
＜/head＞<br />
＜body＞<br />
＜/body＞<br />
＜/html＞</p>
<p><br />
&nbsp;&nbsp; 在Internet Explorer中运行（<span style="color: #ff0000">*</span><span style="color: #ff0000">注：需要在本地安全设置中启用&#8220;对未标记为可安全执行脚本的ActiveX初始化并执行脚本</span>&#8221;），如果是FireFox或者Safari浏览器则需要API的插件。</p>
<p>&nbsp;</p>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1345520.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43772/" target="_blank">[新闻]Digg创始人：不再考虑出售公司 将适机并购</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>VS2005 工具里添加“OLE/COM 对象查看器”命令</title><link>http://www.cnblogs.com/ZHF/archive/2008/11/26/1341737.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Wed, 26 Nov 2008 11:33:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/archive/2008/11/26/1341737.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1341737.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/archive/2008/11/26/1341737.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1341737.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1341737.html</trackback:ping><description><![CDATA[<p><span style="font-size: 14pt">打开VS2005，点击——&gt;工具——&gt;外部工具</span></p>
<p><img height="370" alt="" src="http://www.cnblogs.com/images/cnblogs_com/zhf/a.jpg" width="396" border="0" /></p>
<p>&nbsp;</p>
<p><span style="font-size: 14pt">点击——&gt;添加</span></p>
<p><span style="font-size: 14pt">在标题里输入：OLE/COM 对象查看器</span></p>
<p><span style="font-size: 14pt">命令里：点击...&nbsp;&nbsp;找到目录：C:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\OleView.Exe</span></p>
<p><span style="font-size: 14pt">点击——&gt;应用——&gt;确定</span></p>
<p><span style="font-size: 14pt">工具里就会出现 OLE/COM 对象查看器</span></p>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1341737.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43771/" target="_blank">[新闻]福布斯:中国经济增长减速 网游行业从中获益</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>使用MakeCAB.exe命令创建CAB文件</title><link>http://www.cnblogs.com/ZHF/archive/2008/11/26/1341150.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Wed, 26 Nov 2008 01:37:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/archive/2008/11/26/1341150.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1341150.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/archive/2008/11/26/1341150.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1341150.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1341150.html</trackback:ping><description><![CDATA[<p>MakeCAB.exe 是 Windows 2000 或更高版本中随附的工具。要使用 MakeCAB.exe 来创建 .cab 文件，请执行以下步骤： <br />
<br />
为 makecab.exe 创建一个定向文件，然后以 .ddf 扩展名保存该文件。下面的示例定向文件（名为 sample.ddf）为一个简单的 Web 部件库项目创建了一个 .cab 文件： <br />
<br />
//Sample Source Code MakeCAB Directive file example<br />
<br />
.OPTION EXPLICIT&nbsp; <span style="color: #008000">//Generate errors <br />
</span>.Set CabinetNameTemplate=SampleCab.cab <br />
.set DiskDirectoryTemplate=CDROM&nbsp;&nbsp;&nbsp;<span style="color: #008000">//All cabinets go in a single directory</span><br />
.Set CompressionType=MSZIP&nbsp;&nbsp; <span style="color: #008000">//All files are compressed in cabinet files<br />
</span>.Set UniqueFiles="OFF"<br />
.Set Cabinet=on<br />
.Set DiskDirectory1=SAMPLECAB.CAB</p>
<p><span style="color: #008000">//文件列表<br />
</span>manifest.xml<br />
WebPart1.dwp<br />
WebPartLibrary1.dll<br />
</p>
<p>将您希望包含在 .cab 文件中的所有文件复制到创建 .ddf 文件的目录中。在本例中，这些文件是 Manifest.xml 文件、WebPart1.dwp 文件和 WebPartLibrary1.dll 文件。 <br />
<br />
打开一个命令提示符，转到包含 .ddf 文件以及您希望包含在 .cab 文件中的文件的目录，然后运行以下命令： <br />
<br />
Makecab.exe /F sample.ddf<br />
<br />
<br />
MakeCAB.exe 创建一个名为 SAMPLECAB.CAB 的目录，然后在该目录中创建一个名为 SampleCab.cab 的 .cab 文件，其中包含 Sample.ddf 定向文件中列出的三个文件。<br />
<br />
有关 MakeCAB.exe 的详细信息，请下载 Microsoft Cabinet Software Development Kit。<br />
<br />
用本地化资源创建 CAB 文件<br />
Visual Studio&nbsp;&nbsp; 不支持创建包含内部目录的 .cab 文件。但是，本地化的 Web 部件可能需要一个包含内部目录的 .cab 文件。因此，您必须使用一个&nbsp;&nbsp; MakeCAB.exe 之类的工具或其他第三方 CAB 实用工具来部署本地化的 Web 部件。<br />
<br />
下面的示例描述如何为一个名为 SampleWebPartLibrary 的英语 Web 部件项目（该项目同时还提供德语本地化资源）创建 .cab 文件。本例中的 .cab 文件名为 Sample.cab，它必须包含下列文件： <br />
<br />
SampleWebPartLibrary.dll <br />
<br />
Help.htm <br />
<br />
Image1.gif <br />
<br />
WebPart1.dwp <br />
<br />
de-DE/Help.htm <br />
<br />
de-DE/Image1.gif <br />
<br />
de-DE/WebPart1.dwp <br />
<br />
<br />
要为该示例 Web 部件项目创建 .cab 文件，请执行以下步骤： <br />
<br />
1.<br />
创建适当的 Manifest.xml 文件。下面的示例显示 Sample.cab 文件的 Manifest.xml 文件： <br />
<br />
&lt;?xml version="1.0" encoding="utf-8" ?&gt;<br />
<br />
&lt;WebPartManifest <br />
&nbsp;&nbsp; xmlns="<a href='http://schemas.microsoft.com/WebPart/v2/Manifest">' target=_blank><font color="#000080">http://schemas.microsoft.com/WebPart/v2/Manifest"&gt;</font></a> <br />
&nbsp;&nbsp;&nbsp; &lt;Assemblies&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Assembly FileName="SampleWebPartLibrary.dll"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ClassResources&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ClassResource FileName="image1.gif"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ClassResource FileName="help.htm"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ClassResource FileName="de-DE\image1.gif"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ClassResource FileName="de-DE\help.htm"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ClassResources&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SafeControls&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SafeControl Namespace="SampleWebPartLibrary" <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TypeName="*"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/SafeControls&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Assembly&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/Assemblies&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp; &lt;DwpFiles&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DwpFile FileName="WebPart1.dwp"/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DwpFile FileName="de-DE\WebPart1.dwp"/&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/DwpFiles&gt;<br />
&lt;/WebPartManifest&gt;<br />
<br />
<br />
2.<br />
创建适当的 Makecab.exe 定向文件。下面的示例显示 Sample.cab 文件的定向文件： <br />
<br />
<span style="color: #008000">//Sample Source Code MakeCAB Directive file example</span><br />
.OPTION EXPLICIT <span style="color: #008000">//Generate errors </span><br />
.Set CabinetNameTemplate=Sample.cab&nbsp;&nbsp;&nbsp;&nbsp;<br />
.set DiskDirectoryTemplate=CDROM&nbsp; <span style="color: #008000">//All cabinets go in a single&nbsp;</span><span style="color: #008000">directory<br />
</span>.Set CompressionType=MSZIP&nbsp; <span style="color: #008000">// All files are compressed in cabinet&nbsp;</span><span style="color: #008000">files<br />
</span>.Set UniqueFiles="OFF"<br />
.Set Cabinet=on<br />
.Set DiskDirectory1=SAMPLE.CAB<br />
manifest.xml<br />
WebPart1.dwp<br />
SampleWebPartLibrary.dll<br />
Image1.gif<br />
help.htm<br />
Set DestinationDir=de-DE<br />
de-DE\WebPart1.dwp<br />
de-DE\image1.gif<br />
de-DE\help.htm<br />
<span style="color: #008000">//&nbsp;结束</span><br />
<br />
3.<br />
将您希望包含在 .cab 文件中的所有文件复制到创建 .ddf 文件的目录中，并将所有的本地化资源复制到相应的子目录中。下面的示例显示 Sample.cab 文件的目录结构： <br />
<br />
\Directory with directive file<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Sample.ddf<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Manifest.xml<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SampleWebPartLibrary.dll<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebPart1.dwp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Image1.gif<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Help.htm<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \de-DE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebPart1.dwp<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Image1.gif<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Help.htm<br />
<br />
<br />
4.<br />
打开一个命令提示符，转到包含 .ddf 文件以及您希望包含在 .cab 文件中的文件的目录，然后运行以下命令，以便在 Sample.cab 文件中创建一个子目录，并为部署准备 Sample.cab 文件： <br />
</p>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1341150.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43771/" target="_blank">[新闻]福布斯:中国经济增长减速 网游行业从中获益</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Asp.net中执行.EXE程序的方法</title><link>http://www.cnblogs.com/ZHF/archive/2008/11/25/1340477.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Tue, 25 Nov 2008 03:11:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/archive/2008/11/25/1340477.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1340477.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/archive/2008/11/25/1340477.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1340477.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1340477.html</trackback:ping><description><![CDATA[<p>在无意中看到了网页中执行.exe应用程序的方法：</p>
<p>1、用.NET Framework中的Process类</p>
<p style="text-indent: 2em">添加引用<span style="color: #0000ff">using</span> System.Diagnostics;</p>
<p style="text-indent: 2em">在按钮的单击事件处理程序中填入以下代码：</p>
<p style="text-indent: 2em"><font face="Verdana">protected void Button1_Click(object sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp; {</font></p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Process pro = new Process();</p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pro.StartInfo.FileName = "c:\\windows\\notepad.exe";</p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">//文件名可以省略后缀</span></p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pro.Start();</p>
<p style="text-indent: 2em">}</p>
<p style="text-indent: 2em">程序完成。</p>
<p>2、调用win32函数ShellExecute</p>
<p style="text-indent: 2em">添加引用<span style="color: #0000ff">using</span> System.Runtime.InteropServices;</p>
<p style="text-indent: 2em">声明函数：</p>
<p style="text-indent: 2em">[DllImport("shell32.dll")]</p>
<p style="text-indent: 2em">private static extern IntPtr ShellExecute(IntPtr hwnd, string lpOperation, string lpFile, string lpParameters, string lpDirectory, Int32 nShowCmd);</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em">在按钮的单击事件处理程序中调用前面生明的ShellExecute函数：</p>
<p style="text-indent: 2em"><font face="Verdana">protected void Button1_Click(object sender, EventArgs e)<br />
&nbsp;&nbsp;&nbsp; {</font></p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ShellExecute(IntPtr.Zero, "open", "c:\\windows\\notepad.exe", null, null, 1);</p>
<p style="text-indent: 2em">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">//文件名可以不加后缀，如"c:\\windows\\notepad"</span></p>
<p style="text-indent: 2em">}</p>
<p style="text-indent: 2em">程序完成</p>
<p style="text-indent: 2em"><span style="color: #ff0000">注意：</span>在asp.net2.0中运行以上两种方法写的程序都可以得到想要的结果。但是在asp.net1.1或更早的版本却不能得到想要的结果，打开任务管理器甚至可以看到进程已经存在（编译器也没有报错），但就是看不到执行效果，这是微软为了安全原因禁掉了程序的运行，你需要做以下两步才能正常运行：</p>
<p style="text-indent: 2em">1、在桌面右键单击&#8220;我的电脑&#8221;，选择管理，展开&#8220;服务和应用程序&#8221;节点，选择&#8220;服务&#8221;项；从右侧的服务列表中找到&#8220;IIS Admin&#8221;项，右击鼠标，选择&#8220;属性&#8221;，在属性框中打开&#8220;登陆&#8221;页，勾选&#8220;本地系统帐户&#8221;下的&#8220;允许与桌面交互&#8221;项，点击确定。重新启动这项服务。</p>
<p style="text-indent: 2em">2、打开目录&#8220;C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG&#8221;中的machine.config文件，找到&#8220;processModel&#8221;项，原来这项中有一个属性是userName="machine",将machine改为&#8220;system&#8221;，保存文件，修改完毕。</p>
<p style="text-indent: 2em">现在再运行以前的程序可以看到期望的结果。</p>
<p style="text-indent: 2em">以上程序在IIS5.0以上可正常运行。</p>
<p style="text-indent: 2em">&nbsp;</p>
<p style="text-indent: 2em"><span style="background-color: #ff6600"><span style="background-color: #ff6600">如果大家还有其它什么好的办法，感谢提出~</span></span></p>
<p style="text-indent: 2em"><span style="background-color: #ff6600">共同交流、学习~</span></p>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1340477.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43770/" target="_blank">[新闻]苹果正调查MacBook笔记本“黑屏死机”故障</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>C#获取文件路径的几种方法</title><link>http://www.cnblogs.com/ZHF/archive/2008/11/24/1340172.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Mon, 24 Nov 2008 12:17:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/archive/2008/11/24/1340172.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1340172.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/archive/2008/11/24/1340172.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1340172.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1340172.html</trackback:ping><description><![CDATA[<p><span style="background-color: #3366ff"><span style="background-color: #3366ff"><span style="background-color: #ffffff"><span style="background-color: #ffffff"><span style="color: #3366ff"><span style="color: #3366ff"><span style="font-size: 18pt"><span style="color: #0000ff"><span style="color: #0000ff">通过查找资料，发现C#获取文件路径的方法有以下几种：</span></span></span></span></span></span></span></span></span></p>
<p style="font-size: 14pt"><span style="color: #008000">//获取启动了应用程序的可执行文件的路径，不包括可执行文件的名称。</span>&nbsp;&nbsp; <br />
string&nbsp;&nbsp;&nbsp;&nbsp;str5=Application.StartupPath;<br />
<span style="color: #008000">//可获得当前执行的exe的文件名。&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
string&nbsp;&nbsp;&nbsp;&nbsp;str1&nbsp;&nbsp;&nbsp;&nbsp;=Process.GetCurrentProcess().MainModule.FileName;<br />
<span style="color: #008000">// 获取和设置当前目录（即该进程从中启动的目录）的完全限定路径。</span>&nbsp;&nbsp; 备注&nbsp;&nbsp;&nbsp;&nbsp;按照定义，如果该进程在本地或网络驱动器的根目录中启动，则此属性的值为驱动器名称后跟一个尾部反斜杠（如&#8220;C:\&#8221;）。如果该进程在子目录中启动，则此属性的值为不带尾部反斜杠的驱动器和子目录路径（如&#8220;C:\mySubDirectory&#8221;）。&nbsp;&nbsp; <br />
string&nbsp;&nbsp;&nbsp;&nbsp;str2=Environment.CurrentDirectory;<br />
<span style="color: #008000">//获取应用程序的当前工作目录。</span>&nbsp;&nbsp; <br />
string&nbsp;&nbsp;&nbsp;&nbsp;str3=Directory.GetCurrentDirectory();<br />
<span style="color: #008000">//获取基目录，它由程序集冲突解决程序用来探测程序集。</span>&nbsp;&nbsp; <br />
string&nbsp;&nbsp;&nbsp;&nbsp;str4=AppDomain.CurrentDomain.BaseDirectory;<br />
<span style="color: #008000">//获取启动了应用程序的可执行文件的路径，不包括可执行文件的名称。</span>&nbsp;&nbsp; <br />
string&nbsp;&nbsp;&nbsp;&nbsp;str5=Application.StartupPath;<br />
<span style="color: #008000">//获取启动了应用程序的可执行文件的路径，包括可执行文件的名称。</span>&nbsp;&nbsp; <br />
string&nbsp;&nbsp;&nbsp;&nbsp;str6=Application.ExecutablePath;<br />
<span style="color: #008000">//获取或设置包含该应用程序的目录的名称。<br />
</span>string&nbsp;&nbsp;&nbsp;&nbsp;str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase </p>
<p style="font-size: 14pt">&nbsp;</p>
<p style="font-size: 14pt"><span style="background-color: #3366ff"><span style="background-color: #3366ff">如果还有其它的方法，感谢提出~</span></span></p>
<p style="font-size: 14pt"><span style="background-color: #3366ff">大家共同学习、交流~</span></p>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1340172.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43769/" target="_blank">[新闻]007最牛电脑探秘：应用界面来自中国(组图)</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>解决XP系统下"HTTP 错误 403.9 - 禁止访问：连接的用户过多"的问题</title><link>http://www.cnblogs.com/ZHF/archive/2008/11/17/1334903.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Mon, 17 Nov 2008 02:42:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/archive/2008/11/17/1334903.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1334903.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/archive/2008/11/17/1334903.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1334903.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1334903.html</trackback:ping><description><![CDATA[<p>自己的机子是Windows XP系统，</p>
<p>在本机上部署了一个自己开发的程序，</p>
<p>测试时用IIS很不顺利,经常测试着就出现连接超过限制的错误页面 <br />
<br />
于是准备改掉这个IIS的连接数限制,由于XP的IIS本身没有提供性能这个选项卡,所以只好从别的方面着手了 <br />
<br />
正好,微软自己正好提供这个小工具,估计他们也感觉到了这些问题了吧 <br />
<br />
微软出的一个管理IIS的小工具,名字叫做MetaEdit， <br />
<br />
下载地址为 ： <br />
<br />
http://download.microsoft.com/download/iis50/Utility/5.0/NT45/EN-US/MtaEdt22.exe <br />
<br />
然后，执行MtaEdt22.exe按向导提示完成MetaEdit安装。</p>
<p>安装MetaEdit完毕后，在开始菜单的程序组AdministrativeTools下点击MetaEdit2.2运行，</p>
<p>出现窗口：在窗口的左边将树展开至LM-----W3SVC，</p>
<p>直接在W3SVC文件夹上单击，选择右边列表中Name为MaxConnections的项，</p>
<p>双击后，出现对话框：在最后Data的文本框中默认的是10，</p>
<p>这就是WindowsXP专业版IIS默认设置的最大客户端连接数了，我直接把它改成了1000,和服务器版的IIS一样了。</p>
<p>这样就可以继续工作了!</p>
<p>&nbsp;</p>
<p style="background-color: #ff6600">学习他人知识~</p>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1334903.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43768/" target="_blank">[新闻]新浪网遭攻击瘫痪500分钟 被迫答应黑客要求</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description><enclosure url="http://zhf.cnblogs.com" type="audio/mpeg" /></item><item><title>web.config文件详解</title><link>http://www.cnblogs.com/ZHF/articles/1331837.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Wed, 12 Nov 2008 02:33:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/articles/1331837.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1331837.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/articles/1331837.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1331837.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1331837.html</trackback:ping><description><![CDATA[<p><span style="font-size: 12pt; color: #3366ff">(一).Web.Config是以XML文件规范存储,配置文件分为以下格式<br />
1.配置节处理程序声明<br />
特点： 位于配置文件的顶部，包含在&lt;configSections&gt;标志中。<br />
2.特定应用程序配置<br />
特点: 位于&lt;appSetting&gt;中。 可以定义应用程序的全局常量设置等信息.<br />
3.配置节设置<br />
特点: 位于&lt;system.Web&gt;节中，控制Asp.net运行时的行为.<br />
4.配置节组<br />
特点: 用&lt;sectionGroup&gt;标记，可以自定义分组，可以放到&lt;configSections&gt;内部或其它&lt;sectionGroup&gt;标记的内部.</span></p>
<p><span style="font-size: 12pt; color: #3366ff"><br />
(二).配置节的每一节<br />
1.&lt;configuration&gt;节<br />
根元素，其它节都是在它的内部.<br />
2.&lt;appSetting&gt;节<br />
此节用于定义应用程序设置项。对一些不确定设置，还可以让用户根据自己实际情况自己设置<br />
用法:<br />
a.&lt;appSettings&gt;<br />
&lt;add key="Conntction" value="server=192.168.85.66;userid=sa;password=;database=Info;"/&gt;<br />
&lt;appSettings&gt;<br />
定义了一个连接字符串常量，并且在实际应用时可以修改连接字符串，不用修改程式代码.</span><span style="font-size: 12pt; color: #3366ff"><br />
b.&lt;appSettings&gt;<br />
&lt;add key="ErrPage" value="Error.aspx"/&gt;<br />
&lt;appSettings&gt;<br />
定义了一个错误重定向页面.</span></p>
<p><span style="font-size: 12pt; color: #3366ff"><br />
3.&lt;compilation&gt;节<br />
格式:<br />
&lt;compilation <br />
defaultLanguage="c#"<br />
debug="true"<br />
/&gt;<br />
1.default language: 定义后台代码语言,可以选择C#和VB.net两种语言.<br />
2.debug : 为true时，启动aspx调试； 为false不启动aspx调试，因而可以提高应用程序运行<br />
时的性能。 一般程序员在开发时设置为true,交给客户时设置为false.</span></p>
<p><span style="font-size: 12pt; color: #3366ff"><br />
4.&lt;customErrors&gt;节<br />
格式:<br />
&lt;customErrors <br />
mode="RemoteOnly" <br />
defaultRedirect="error.aspx"<br />
&lt;error statusCode="440" redirect="err440page.aspx"/&gt;<br />
&lt;error statusCode="500" redirect="err500Page.aspx"/&gt;<br />
/&gt; <br />
1.mode : 具有On,Off,RemoteOnly 3种状态。On表示始终显示自定义的信息; Off表示始终显示详细的asp.net错误信息; RemoteOnly表示只对不在本地Web服务器上运行的用户显示自定义信息.<br />
2.defaultRedirect: 用于出现错误时重定向的URL地址. 是可选的<br />
3.statusCode: 指明错误状态码，表明一种特定的出错状态.<br />
4. redirect:错误重定向的URL.</span></p>
<p><span style="font-size: 12pt; color: #3366ff"><br />
5.&lt;globalization&gt;节<br />
格式:<br />
&lt;globalization <br />
requestEncoding="utf-8" <br />
responseEncoding="utf-8" <br />
fileEncoding="utf-8"<br />
/&gt; <br />
1.requestEncoding: 它用来检查每一个发来请求的编码. <br />
2.responseEncoding: 用于检查发回的响应内容编码.<br />
3.fileEncoding: 用于检查aspx,asax等文件解析的默认编码. </span></p>
<span style="font-size: 12pt; color: #3366ff">
<p><br />
6.&lt;sessionState&gt;节<br />
格式:<br />
&lt;sessionState <br />
mode="InProc"<br />
stateConnectionString="tcpip=127.0.0.1:42424"<br />
sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"<br />
cookieless="false" <br />
timeout="20" <br />
/&gt;<br />
1.mode: 分为off,Inproc,StateServer,SqlServer几种状态<br />
这里有详细介绍此属性: <a onclick='hideulname();preEmt(this).childNodes[0].style.display="inline";return false' href="http://blog.csdn.net/chengking/archive/2005/10/27/518079.aspx" target="_blank">http://blog.csdn.net/chengking/archive/2005/10/27/518079.aspx</a> <br />
2. stateConnectionString :指定Asp.net应用程序存储远程会话状态的服务器名，默认为本机<br />
3.sqlConnectionString: 当用会话状态数据库时，在这里设置连接字符串<br />
4. Cookieless: 设置为true时，表示不使用cookie会话状态来标识客户； 否则，相反.<br />
5. TimeOut: 用来定义会话状态存储的时间，超过期限，将自动终止会话.</p>
<p><br />
7.&lt;authentication&gt;节<br />
格式:<br />
&lt;authentication mode="Forms"&gt; <br />
&lt;forms name=".ASPXUSERDEMO" loginUrl="Login.aspx" protection="All" timeout="30"/&gt;<br />
&lt;/authentication&gt;<br />
&lt;authorization&gt;<br />
&lt;deny users="?"/&gt;<br />
&lt;/authorization&gt;<br />
1.Windows: 使用IIS验证方式<br />
2.Forms: 使用基于窗体的验证方式<br />
3.Passport: 采用Passport cookie验证模式<br />
4.None: 不采用任何验证方式<br />
里面内嵌Forms节点的属性涵义:<br />
1.Name: 指定完成身份验证的Http cookie的名称.<br />
2.LoginUrl: 如果未通过验证或超时后重定向的页面URL，一般为登录页面，让用户重新登录<br />
3.Protection: 指定 cookie数据的保护方式. <br />
可设置为: All None Encryption Validation四种保护方式<br />
a. All表示加密数据，并进行有效性验证两种方式<br />
b. None表示不保护Cookie.<br />
c. Encryption表示对Cookie内容进行加密<br />
d. validation表示对Cookie内容进行有效性验证<br />
e. TimeOut: 指定Cookie的失效时间. 超时后要重新登录.</p>
<p>&nbsp;</p>
<p>8、&lt;httpRuntime&gt;节<br />
　　作用：配置 ASP.NET HTTP 运行库设置。该节可以在计算机、站点、应用程序和子目录级别声明。<br />
　　示例：控制用户上传文件最大为4M，最长时间为60秒，最多请求数为100<br />
&lt;httpRuntime maxRequestLength="4096" executionTimeout="60" appRequestQueueLimit="100"/&gt; <br />
<br />
9、 &lt;pages&gt;<br />
　　作用：标识特定于页的配置设置（如是否启用会话状态、视图状态，是否检测用户的输入等）。&lt;pages&gt;可以在计算机、站点、应用程序和子目录级别声明。<br />
<br />
　　示例：不检测用户在浏览器输入的内容中是否存在潜在的危险数据（注：该项默认是检测，如果你使用了不检测，一要对用户的输入进行编码或验证)，在从客户端回发页时将检查加密的视图状态，以验证视图状态是否已在客户端被篡改。(注：该项默认是不验证）<br />
<br />
&lt;pages buffer="true" enableViewStateMac="true" validateRequest="false"/&gt; <br />
　　<br />
10、&lt;trace&gt;<br />
　　作用：配置 ASP.NET 跟踪服务，主要用来程序测试判断哪里出错。<br />
　　示例：以下为Web.config中的默认配置：<br />
&lt;trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" /&gt; <br />
<br />
　　注：<br />
　　enabled="false"表示不启用跟踪；requestLimit="10"表示指定在服务器上存储的跟踪请求的数目 <br />
　　pageOutput="false"表示只能通过跟踪实用工具访问跟踪输出；<br />
　　traceMode="SortByTime"表示以处理跟踪的顺序来显示跟踪信息<br />
　　localOnly="true" 表示跟踪查看器 (trace.axd) 只用于宿主 Web 服务器<br />
<br />
</p>
</span>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1331837.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43767/" target="_blank">[新闻]联发科称“死机短信”不会伤害手机硬件</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>ASP.NET开发中的八个最佳实践</title><link>http://www.cnblogs.com/ZHF/articles/1331791.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Wed, 12 Nov 2008 01:42:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/articles/1331791.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1331791.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/articles/1331791.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1331791.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1331791.html</trackback:ping><description><![CDATA[探索一些在ASP.NET应用程序开发方面的最佳实践，按照这些有用的过程执行就可以改善你的应用程序性能。本文展现了八个最佳实践，你可以在生产模式中开发ASP.NET应用程序时遵循这些最佳实践。
<p><strong>1.使用版本控制你的程序集</strong></p>
<p>确保你有一套合适的版本控制策略，在编译时可以使用程序集版本属性应用版本标志，例如：</p>
<p>[程序集: 程序集版本("1.0.12.34")] </p>
<p>在构建过程中通常对一个应用程序应用相同的版本号。</p>
<p><strong>2.给程序集取一个强壮的名字</strong></p>
<p>程序集是版本控制和代码复用的最小单元，包括：</p>
<p>◆程序集标识信息（名称，版本等）<br />
◆清单和元数据信息<br />
◆MSIL代码<br />
◆类型和安全信息<br />
◆资源<br />
<br />
具有强壮名称的程序集与它的版本信息、区域信息和数字签名一起可以唯一标识出它。</p>
<p>可以使用.NET框架提供了一个实用程序（sn.exe）为你的程序集创建一个强壮的名称，这个实用程序需要你提供一个密钥文件作为参数，结果文件叫做&#8220;强名称&#8221;文件，你可以使用sn.exe工具从命令行创建强名称密钥文件，如：</p>
<p>sn --k MyCompany.snk</p>
<p>当你执行前面这条命令时，你会看到如图1所示的内容输出。</p>
<p><strong>1.使用版本控制你的程序集</strong></p>
<p>确保你有一套合适的版本控制策略，在编译时可以使用程序集版本属性应用版本标志，例如：</p>
<p>[程序集: 程序集版本("1.0.12.34")] </p>
<p>在构建过程中通常对一个应用程序应用相同的版本号。</p>
<p><strong>2.给程序集取一个强壮的名字</strong></p>
<p>程序集是版本控制和代码复用的最小单元，包括：</p>
<p>◆程序集标识信息（名称，版本等）<br />
◆清单和元数据信息<br />
◆MSIL代码<br />
◆类型和安全信息<br />
◆资源<br />
具有强壮名称的程序集与它的版本信息、区域信息和数字签名一起可以唯一标识出它。</p>
<p>可以使用.NET框架提供了一个实用程序（sn.exe）为你的程序集创建一个强壮的名称，这个实用程序需要你提供一个密钥文件作为参数，结果文件叫做&#8220;强名称&#8221;文件，你可以使用sn.exe工具从命令行创建强名称密钥文件，如：</p>
<p>sn --k MyCompany.snk</p>
<p>当你执行前面这条命令时，你会看到如图1所示的内容输出。</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332330.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" style="width: 498px; zoom: 110%" height="299" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332330.jpg" width="568" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图1.创建一个强名称密钥文件</strong></font> </p>
<p>当你在Visual Studio中创建一个项目时，你会看到一个叫做AssemblyInfo.cs的默认文件，你可以使用它指定有关的属性，下面列出了在AssemblyInfo.cs文件中你可以指定的强名称信息。</p>
<p>[assembly: AssemblyCulture("")] 【程序集:程序集区域("")】<br />
[assembly: AssemblyVersion("1.0.0.0")] 【程序集:程序集版本("1.0.0.0")】<br />
[assembly: AssemblyKeyFile("MyCompany.snk")] 【程序集:程序集密钥文件("MyCompany.snk"】</p>
<p><strong>3.打乱你的程序集</strong></p>
<p>在开始部署程序集之前，最好先打乱它，这样使得反编译更困难，阻止反向工程的尝试，因此，保护你的源代码避免潜在的威胁，此外，打乱程序集可以减少它的大小，从而提升应用程序的性能，在<a href="http://www.aspnetpro.com/newsletterarticle/2006/10/asp200610jk_l/asp200610jk_l.asp">http://www.aspnetpro.com/newsletterarticle/2006/10/asp200610jk_l/asp200610jk_l.asp</a>能找到更多关于打乱程序集的信息。</p>
<p><strong>4.将共享程序集部署到GAC</strong></p>
<p>你应该将被多个应用程序使用的程序集部署到全局程序集缓存（通常叫做GAC）中，它允许其中的程序集由多个应用程序共享，将程序集部署到GAC中改善了它的载入性能，从GAC载入强命名程序集速度更快，因为它们在安装时就已经校验了，在运行时就不需要再次校验了，.NET框架会跳过校验，运行时总会检查强命名程序集校验它们的完整性，.NET拒绝载入不受信任的或可能捣乱的程序集，记住将程序集安装到GAC之前一定要给它取一个强壮的名字。</p>
<p>用GACUtil这个工具将程序集放入GAC，下面的命令将MyProject.dll放入GAC中，因此它就成为了一个全局程序集。</p>
<p>GacUtil /i MyProject.dll</p>
<p>要卸载GAC中的程序集，可以使用：</p>
<p>GacUtil /u MyProject.dll</p>
<p>注意即使不将程序集放入GAC你也可以使你的强命名程序集全局可访问，但你需要使用xcopy命令来部署这样的程序集。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>5.使用恰当的战略进行部署</strong></p>
<p>本文讨论两个主要的部署ASP.NET站点的技术：使用copy工具和xcopy工具。也简要地谈到了点击一次部署，其中copy工具是最新的技术，自ASP.NET 2.0开始引入。</p>
<p>使用copy工具进行部署</p>
<p>下面的步骤完整地显示了从一个站点拷贝到另一个站点的示例。</p>
<p>5.1在Visual Studio中选择文件新建站点创建一个名叫SourceWebSite的新站点，如图2所示。</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332331.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" style="width: 498px" height="377" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332331.jpg" width="574" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'"><br />
<font size="2"><strong>图</strong></font></span><font size="2"><strong><span lang="EN-US">2.</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">创建新站点：从新建站点对话框中选择标准的</span><span lang="EN-US">ASP.NET</span><span style="font-family: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">站点模板</span></strong></font></p>
<p>5.2然后再创建一个名叫SharedWebSite的站点，你可以使用copy工具将这个站点拷贝到SourceWebSite。</p>
<p>5.3接下来，在Visual Studio Solution Explorer中选择SourceWebSite，在它上面点击右键选择Copy Web Site选项，如图3所示。</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332332.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" height="265" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332332.jpg" width="355" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图3.拷贝站点：在SourceWebSite上点击右键，在右键菜单中选择Copy Web Site</strong></font> </p>
<p>5.4另外，你也可以选择SourceWebSite然后点击solution explorer 中的Copy Web Site选项，如图4所示。</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332333.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" height="261" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332333.jpg" width="352" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图4.快速站点拷贝</strong></font></p>
<p>5.5你将会看到拷贝站点屏幕，在左边的方格中你将会看到SourceWebSite站点包括的文件。</p>
<p>5.6选择SharedWebSite站点（你的远程站点），这样就会弹出打开站点对话框，选择共享的/远程的站点，然后点击打开按钮，如图5所示。</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332334.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" style="width: 498px" height="450" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332334.jpg" width="566" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图5.打开站点对话框：选择共享的/远程站点然后点击打开</strong></font><br />
</p>
<p>&nbsp;</p>
<p>5.7接下来的屏幕右边方格中显示了共享的/远程站点包括的所有文件，选择所有文件，如图6所示。 </p>
<p>&nbsp;</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332335.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" style="width: 498px" height="352" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332335.jpg" width="571" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图6.选择共享/远程文件：在右边方格中选择所有的远程/共享站点文件</strong></font></p>
<p>5.8接下来，点击Copy Selected Files选项按钮，从共享/远程站点拷贝文件到你的本地站点，如图7所示。</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332336.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" style="width: 498px" height="204" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332336.jpg" width="571" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图7.拷贝文件：使用拷贝按钮从远程/共享站点拷贝文件到本地站点</strong></font></p>
<p>如果拷贝过程发现文件冲突，它会询问你是跳过文件还是覆盖本地文件，如图8所示。</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332337.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" height="320" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332337.jpg" width="402" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图8.文件冲突解决办法：出现文件冲突是，你有一次机会决定如何处理冲突</strong></font></p>
<p>如果站点的子文件夹名字雷同，你可以选择同步按钮在远程和本地站点之间直接同步文件，如图9所示。</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332338.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" style="width: 498px" height="200" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332338.jpg" width="569" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图9.同步文件：点击同步按钮在远程和本地服务器之间同步选择的文件</strong></font></p>
<p>这样就完成了站点的拷贝过程。<br />
</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>使用xcopy进行部署</strong></p>
<p>将一个ASP.NET应用程序部署生产服务器上是非常简单：只需要使用xcopy命令拷贝你的应用程序完整目录结构到生产环境就可以了，下面就是xcopy的过程：</p>
<p>◆点击开始运行打开一个终端窗口<br />
◆输入cmd回车<br />
◆在目标位置创建相同的文件夹结构<br />
◆最后，输入下面的命令，注意使用你自己的路径信息进行替换，如图10所示</p>
<p>XCOPY DevX\SharedWebSite DevX\SourceWebSite /e /r /k /h /i /y</p>
<p align="center"><a href="http://new.51cto.com/files/uploadimg/20080918/1332339.jpg" target="_blank"><img class="fit-image" onmousewheel="javascript:return big(this)" style="width: 498px" height="346" alt="" src="http://new.51cto.com/files/uploadimg/20080918/1332339.jpg" width="574" onload="javascript:if(this.width>498)this.style.width=498;" border=0></a><br />
<font size="2"><strong>图10.xcopy示例：使用图中给出的xcopy命令选项拷贝所有目录，子目录和文件到共享站点</strong></font></p>
<p><em>作者提醒：当你在Vista操作系统中运行xcopy命令时，你将会看到一个消息：&#8220;xcopy已经被弃用，请使用ROBOCOPY&#8221;，ROBOCOPY意思是&#8220;强壮的文件拷贝&#8221;，在Vista中，在命令行输入ROBOCOPY /?你可以找到更多有关它的信息。</em></p>
<p><strong>XCOPY 对阵Copy Web Site工具</strong></p>
<p>现在你已经看到这两个方法了，你会使用哪一个呢？相对xcopy而言，使用Copy Web Site工具时有一个缺陷，就是页面初始载入时间比较缓慢，那是因为Copy Web Site工具拷贝你的所有源代码页面作为源，并且它不执行编译操作，此外，拷贝源文件还引入了潜在的风险，因为人们可以看到源代码，然而，Copy Web Site改善了xcopy，因为你可以使用它部署你的应用程序到一个文件系统中，一个IIS本地实例，FTP站点，或者甚至远程站点程序集。</p>
<p><strong>6.预编译你的站点</strong></p>
<p>你可以使用ASP.NET 2.0预编译特性缩短web页面的载入时间，并且可以避免在服务器上直接部署源代码，预编译是一个强大的新特性，它可以检查并提供任何编译失败的警告消息，让你部署应用程序时不需要存储任何源代码在服务器上，预编译可以减少应用程序响应时间和提升性能，关于预编译的完整讨论已经超出了本文的范围，你可以参考<a href="http://www.devx.com/dotnet/Article/34418/0">http://www.devx.com/dotnet/Article/34418/0</a>。</p>
<p><strong>7.减少文件大小</strong></p>
<p>挤出web页面、脚本和样式表中额外的空格和不需要的字符对减少文件大小通常是一个很好的实践，你可以使用IIS压缩对比减少文件大小前后网络带宽的消耗和性能的改善，即使使用IIS压缩对性能有一点点改善（压缩需要额外的进程），它仍然算是一个最佳实践，因为细微的性能改善相对于大的受益是可以忽略不计的，压缩可以减少网络带宽消耗将近50%！<a href="http://www.sswug.org/see/Using_Http_Compression_through_IIS-38924">http://www.sswug.org/see/Using_Http_Compression_through_IIS-38924</a>这篇文章提供了更多关于IIS HTTP压缩的信息。</p>
<p><strong>8.利用点击一次部署和自动更新</strong></p>
<p>点击一次部署是Microsoft .NET 2.0引入的一个战略，你可以使用它部署应用程序到文件系统、本地web服务器、远程web站点或FTP站点。<br />
点击一次的本质是你在客户端有一份应用程序，当更新可用时你可以检查到并可以下载它们，允许你配置你的应用程序安全地更新并定期发布到Internet，点击一次提供了更低的成本，并且自动更新与版本控制没有冲突！你可以使用点击一次部署战略为应用程序提供热更新，只下载并安装改动过的程序库，然而，可能有些情况下点击一次不能按预期工作，例如：如果一个客户端的浏览器代理服务器已经缓存了部署文件的某个旧版本，那个客户端可能不会按预期那样更新，使用HTTP内容过期可以减轻这个问题。</p>
<p><strong>最后想说的几点内容</strong></p>
<p>你在部署应用程序之前，确保应用程序web.config文件中的Compilation Debug属性被设置为false了，当你设置为true时，你的应用程序会吃掉更多的内存并消耗更多的处理器时间，同时脚本和图像下载不会缓存到本地。</p>
<p>当你部署应用程序到生产服务器上之前，以Release模式构建你自己的程序集，通过设置web服务扩展为&#8220;启用&#8221;确保你允许IIS处理动态内容。</p>
<p>确保你已经对所有配置数据都进行加密处理，如连接字符串等。<br />
记住通过IIS使用HTTP压缩建设文件的大小，改善应用程序的整体性能。<br />
最后，准备一个检查列表列出部署步骤是非常明智的，使用交叉检查确保没有跳过任何一个步骤。</p>
<p>正如你看到的，将应用程序部署到生产环境有大量的策略，请选择适合你自身的最佳部署模式，准备一个检查列表，使用它进行校验，你会发现生产部署也可以变得非常顺利。</p>
<p><br />
&nbsp;</p>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1331791.html?type=2" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43767/" target="_blank">[新闻]联发科称“死机短信”不会伤害手机硬件</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>GridView分页用法</title><link>http://www.cnblogs.com/ZHF/archive/2008/11/11/1331081.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Tue, 11 Nov 2008 00:52:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/archive/2008/11/11/1331081.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1331081.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/archive/2008/11/11/1331081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1331081.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1331081.html</trackback:ping><description><![CDATA[<p><span style="background-color: #ff9900"><span style="font-size: 14pt; background-color: #ff9900"><span style="font-size: 14pt"><span style="background-color: #ff9900"><span style="background-color: #ff9900">本人通过学习GridView，查看的相关资料，总结了实现上一页、下一页、首页、尾页、页面跳转的方法如下</span></span></span></span></span></p>
<p><span style="font-size: 14pt"><span style="background-color: #ff9900"><span style="background-color: #ff9900">新建一个.aspx页面：</span></span></span></p>
<p><font face="Verdana">&lt;%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sjy_Form.aspx.cs" Inherits="Sjy_Form" %&gt;<br />
&lt;%@ OutputCache Duration="2" VaryByParam="*" %&gt;</font></p>
<p><font face="Verdana">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;<br />
&lt;html xmlns="http://www.w3.org/1999/xhtml" &gt;<br />
&lt;head runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;title&gt;数据源管理窗口&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;script language="javascript" src="Js/calendar.js" charset="gb2312"&gt;&lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;style&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .c{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FILTER: alpha(style=1,opacity=0,finishOpacity=1,startX=1 , startY=1 , finishX=99, finishY=99 );<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html{&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; html { overflow-x:hidden; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/style&gt;<br />
&lt;/head&gt;<br />
&lt;body&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;form id="form1" runat="server"&gt;</font></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font face="Verdana">&lt;div id="b" style="left: 11px; overflow-x :auto; overflow-y:auto;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; width: 645px; position: absolute; top: 419px; height: 195px"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:GridView ID="GridView1" runat="server" AllowPaging="True" AutoGenerateColumns="False"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CellPadding="3" Height="1px" Width="1005px" PageSize="5" Font-Size="10pt" BackColor="White" BorderColor="#E7E7FF" BorderWidth="1px" OnRowDataBound="GridView1_RowDataBound"&gt;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;Columns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField="sjy_id" HeaderText="数据源编号" SortExpression="sjy_id" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderStyle HorizontalAlign="Left" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:BoundField&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField="sjymc" HeaderText="数据源名称" SortExpression="sjymc" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderStyle HorizontalAlign="Left" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:BoundField&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField="sjybt" HeaderText="数据源标题" SortExpression="sjybt" &gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderStyle HorizontalAlign="Left" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ItemStyle Wrap="False" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:BoundField&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField="jlr" HeaderText="建立人"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderStyle HorizontalAlign="Left" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:BoundField&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:BoundField DataField="jlrq" HeaderText="建立日期" DataFormatString="{0:d}"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderStyle HorizontalAlign="Left" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ItemStyle Wrap="False" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:BoundField&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/Columns&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;PagerTemplate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;table width="100%"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;td style="text-align: right"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 第&lt;asp:Label ID="lblPageIndex" runat="server" Text='&lt;%# ((GridView)Container.Parent.Parent).PageIndex + 1&nbsp; %&gt;'&gt;&lt;/asp:Label&gt;页<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 共/&lt;asp:Label ID="lblPageCount" runat="server" Text='&lt;%# ((GridView)Container.Parent.Parent).PageCount&nbsp; %&gt;'&gt;&lt;/asp:Label&gt;页<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:LinkButton ID="btnFirst" runat="server" CausesValidation="False" CommandArgument="First"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CommandName="Page" Text="首页" OnClick="LinkBtn_Sjy_Click"&gt;&lt;/asp:LinkButton&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:LinkButton ID="btnPrev" runat="server" CausesValidation="False" CommandArgument="Prev"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CommandName="Page" Text="上一页" OnClick="LinkBtn_Sjy_Click"&gt;&lt;/asp:LinkButton&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:LinkButton ID="btnNext" runat="server" CausesValidation="False" CommandArgument="Next"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CommandName="Page" Text="下一页" OnClick="LinkBtn_Sjy_Click"&gt;&lt;/asp:LinkButton&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:LinkButton ID="btnLast" runat="server" CausesValidation="False" CommandArgument="Last"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CommandName="Page" Text="尾页" OnClick="LinkBtn_Sjy_Click"&gt;&lt;/asp:LinkButton&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:TextBox ID="txtNewPageIndex" runat="server" Text='&lt;%# ((GridView)Container.Parent.Parent).PageIndex + 1&nbsp; %&gt;'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Width="20px"&gt;&lt;/asp:TextBox&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:LinkButton ID="btnGo" runat="server" CausesValidation="False" CommandArgument="Go"<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CommandName="Page" Text="GO" OnClick="LinkBtn_Sjy_Click"&gt;&lt;/asp:LinkButton&gt;&lt;!-- here set the CommandArgument of the Go Button to '-1' as the flag --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/td&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/tr&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/PagerTemplate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderStyle BackColor="#7481BA" Font-Bold="True" ForeColor="Yellow" HorizontalAlign="Left" Wrap="False" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;AlternatingRowStyle BackColor="#F7F7F7" /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/asp:GridView&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;asp:Label ID="Lab_info" runat="server" ForeColor="red"&gt;&lt;/asp:Label&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/form&gt;<br />
&lt;/body&gt;<br />
&lt;/html&gt;</font></p>
<p>&nbsp;</p>
<p>后台代码：</p>
<p>&nbsp;</p>
<p><font face="Verdana">#region Gridview数据填充<br />
&nbsp;&nbsp;&nbsp; /// &lt;summary&gt;<br />
&nbsp;&nbsp;&nbsp; /// Gridview数据填充<br />
&nbsp;&nbsp;&nbsp; /// &lt;/summary&gt;<br />
&nbsp;&nbsp;&nbsp; private void Gridview_Bind()<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sqlStr = "select * from sys_pcedm_sjy";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet ds = OracleDB.Dataset(sqlStr);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GridView1.DataSource = ds;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GridView1.DataBind();</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (ds.Tables[0].Rows.Count == 0)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GridView1.Visible = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Lab_info.Text = "当前数据记录为空";<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GridViewRow pagerRow = GridView1.BottomPagerRow;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinkButton linkBtnFirst = (LinkButton)pagerRow.Cells[0].FindControl("btnFirst");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinkButton linkBtnPrev = (LinkButton)pagerRow.Cells[0].FindControl("btnPrev");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinkButton linkBtnNext = (LinkButton)pagerRow.Cells[0].FindControl("btnNext");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LinkButton linkBtnLast = (LinkButton)pagerRow.Cells[0].FindControl("btnLast");<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (this.GridView1.PageIndex == 0)<br />
&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; linkBtnFirst.Enabled = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; linkBtnPrev.Enabled = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&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; linkBtnFirst.Enabled = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; linkBtnPrev.Enabled = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (GridView1.PageIndex == GridView1.PageCount - 1)<br />
&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; linkBtnLast.Enabled = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; linkBtnNext.Enabled = false;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />
&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; linkBtnLast.Enabled = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; linkBtnNext.Enabled = true;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</font></p>
<p><font face="Verdana">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt;= GridView1.Rows.Count - 1; i++)<br />
&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; DataRowView mydrv;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string gIntro;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (GridView1.PageIndex == 0)<br />
&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; mydrv = ds.Tables["data"].DefaultView[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gIntro = Convert.ToString(mydrv["sjysm"]);&nbsp;&nbsp;&nbsp;&nbsp; //这里取出单元格数据,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GridView1.Rows[i].Cells[7].Text = SubStr(gIntro, 4);//自定义了一个函数SubStr进行截取,返回的值重新绑定到gridview控件的单元格中.<br />
&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; else<br />
&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; mydrv = ds.Tables["data"].DefaultView[i + (5 * GridView1.PageIndex)];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gIntro = Convert.ToString(mydrv["sjysm"]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GridView1.Rows[i].Cells[3].Text = SubStr(gIntro, 4);<br />
&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; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; #endregion</font></p>
<p>&nbsp;</p>
<p><span style="background-color: #ff6600"><span style="background-color: #ff6600"><span style="font-size: 14pt"><span style="background-color: #0000ff"><span style="background-color: #0000ff"><span style="background-color: #3366ff"><span style="background-color: #3366ff">如果大家有其它好的方法，希望能提出。</span></span></span></span></span></span></span></p>
<p><span style="background-color: #ff6600"><span style="font-size: 14pt"><span style="background-color: #0000ff"><span style="background-color: #3366ff">共同交流 共同学习</span></span></span></span></p>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1331081.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43766/" target="_blank">[新闻]金融危机引爆Web2.0变革：社区网站价值被高估</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Asp.net项目路径获取方法</title><link>http://www.cnblogs.com/ZHF/archive/2008/11/07/1328652.html</link><dc:creator>zhangfeng</dc:creator><author>zhangfeng</author><pubDate>Fri, 07 Nov 2008 02:32:00 GMT</pubDate><guid>http://www.cnblogs.com/ZHF/archive/2008/11/07/1328652.html</guid><wfw:comment>http://www.cnblogs.com/ZHF/comments/1328652.html</wfw:comment><comments>http://www.cnblogs.com/ZHF/archive/2008/11/07/1328652.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/ZHF/comments/commentRss/1328652.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/ZHF/services/trackbacks/1328652.html</trackback:ping><description><![CDATA[<p>本人通过试验获取项目路径的方法有以下几种：</p>
<p>获取项目完整的绝对路径</p>
<p><font face="Verdana">string path = System.AppDomain.CurrentDomain.BaseDirectory.ToString();</font></p>
<p><font face="Verdana">string&nbsp;path = Server.MapPath(".");<span style="color: #008000">//此"."可以换成项目文件里的其它文件夹名称</span></font></p>
<p>&nbsp;</p>
<p>输出asp.net 网站路径</p>
<p><span style="color: rgb(0,0,255)">private</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">void</span><span style="color: rgb(0,0,0)">&nbsp;responseHtml()<br />
&nbsp;</span><span id="_32_1059_Open_Text"><span style="color: rgb(0,0,0)">{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Text.StringBuilder&nbsp;sb&nbsp;</span><span style="color: rgb(0,0,0)">=</span><span style="color: rgb(0,0,0)">&nbsp;</span><span style="color: rgb(0,0,255)">new</span><span style="color: rgb(0,0,0)">&nbsp;System.Text.StringBuilder();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,255)">string</span><span style="color: rgb(0,0,0)">.Format(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">当前时间:&nbsp;{0}</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">,&nbsp;Server.HtmlEncode(DateTime.Now.ToString())));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">&lt;br&nbsp;/&gt;</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,255)">string</span><span style="color: rgb(0,0,0)">.Format(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">当前请求的虚拟路径:&nbsp;{0}</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">,Server.HtmlEncode(Request.CurrentExecutionFilePath)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">&lt;br&nbsp;/&gt;</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,255)">string</span><span style="color: rgb(0,0,0)">.Format(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">获取当前应用程序的根目录路径:&nbsp;{0}</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">,&nbsp;Server.HtmlEncode(Request.ApplicationPath)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">&lt;br&nbsp;/&gt;</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,255)">string</span><span style="color: rgb(0,0,0)">.Format(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">当前请求的虚拟路径:&nbsp;{0}</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">,Server.HtmlEncode(Request.FilePath)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">&lt;br&nbsp;/&gt;</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,255)">string</span><span style="color: rgb(0,0,0)">.Format(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">当前请求的虚拟路径:&nbsp;{0}</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">,Server.HtmlEncode(Request.Path)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">&lt;br&nbsp;/&gt;</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,255)">string</span><span style="color: rgb(0,0,0)">.Format(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">获取当前正在执行的应用程序的根目录的物理文件系统路径:&nbsp;{0}</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">,&nbsp;Server.HtmlEncode(Request.PhysicalApplicationPath)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">&lt;br&nbsp;/&gt;</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,255)">string</span><span style="color: rgb(0,0,0)">.Format(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">获取与请求的&nbsp;URL&nbsp;相对应的物理文件系统路径:&nbsp;{0}</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">,&nbsp;Server.HtmlEncode(Request.PhysicalApplicationPath)));<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.Append(</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">&lt;br&nbsp;/&gt;</span><span style="color: rgb(0,0,0)">"</span><span style="color: rgb(0,0,0)">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(sb.ToString());<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: rgb(0,0,0)"><br />
}</span></p>
<p>&nbsp;</p>
<p><span style="color: rgb(0,0,0)"><span style="color: rgb(153,51,0)">输出</span>:当前时间: 2008-11-7 10:26:47<br />
当前请求的虚拟路径: /test/Gauge.aspx<br />
获取当前应用程序的根目录路径: /test<br />
当前请求的虚拟路径: /test/Gauge.aspx<br />
当前请求的虚拟路径: /test/Gauge.aspx<br />
获取当前正在执行的应用程序的根目录的物理文件系统路径: D:\Asp.net测试项目\test\<br />
获取与请求的 URL 相对应的物理文件系统路径: D:\Asp.net测试项目\test\<br />
</span></p>
<p><span style="color: rgb(0,0,0)"><span style="color: #ff6600"><span style="color: #ff6600"><span style="color: #0000ff"><span style="color: #0000ff"><span style="color: #0000ff">如果大家还有其它方法的，感谢提供、分享</span></span></span></span></span></span></p>
<p><span style="color: rgb(0,0,0)"><span style="color: #ff6600"><span style="color: #0000ff">大家共同学习 共同交流</span></span></p>
</span>
<img src ="http://www.cnblogs.com/ZHF/aggbug/1328652.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43765/" target="_blank">[新闻]MySpace称目前是收购创业公司良机</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item></channel></rss>