All Posts in 2011.8


ASP.NET GridView超链接列取值

场景:开发一个简单的Web文件管理功能,第一列是指向文件的超链接,最后一列放一个删除按钮。现在要求按删除按钮后,删除对应的文件。思路:获取当前行的第一列的值,然后调用File.Delete()方法。按照以往的写法,我们会在GridView的SelectedIndexChanged事件中,先找到当前行:int i = GridView1.SelectedIndex;然后通过 GridView1.Rows[i].Cells[0].Text来访问当前行第一列的数据。但是,如果不幸遇到超链接列,这种写法取出的缺是空串。我研究了好久,最后发现,HyperLink Field在GridView中要当作Web Control来处理。所以必须先转换为HyperLink,然后才能访问其Text属性。写法如下:((HyperLink)GridView1.Rows[i].Cells[0].Controls[0] …


IIS7启用Windows身份验证的办法

最近因为工作需要,在PC上用IIS建了个简单的文件服务器(启用目录浏览),但这样的服务需要安全验证,我不能让每个人都可以访问我的文件。我记得以前在IIS5、IIS6里,是可以设置身份验证方式的,只要去掉匿名访问,打开网站的时候就需要输入IIS服务器上的用户名和密码。 然而换了Windows7之后,我没有注意过这个功能,直到今天才发现,Win7里的IIS7.5,默认是不带Windows身份验证的。如果把匿名身份验证关闭的话,访问网站会直接失败,而不是弹出登录框。 经过一番研究,终于发现了开启Windows身份验证的办法:控制面板-程序和功能-打开和关闭Windows功能-Internet信息服务-万维网服务-安全性,选择Windows身份验证。 然后,回到你的IIS控制台。选择要进行身份验证的网站。在身份验证中,将Windows身份验证启用,其他全部禁用。 大功告成:


ASP.NET Repeater控件绑定List<T>泛型的写法

我们在开发分成架构的Web应用程序时,常常把数据库中的记录放到一个List中,做到了良好的封装。调用业务逻辑的程序猿也无需知道库表结构就可以直接使用“Model.属性”来访问各个字段的数据了。但在做显示的时候,初学者可能会碰到一些问题。以往大家在显示控件(如Repeater)上绑定的都是DataSet,ASPX页面里写的是“”。那如何绑定一个List泛型呢?其实,Repeater控件是支持绑定到业务对象的,并且我们也不再用Eval表达式了。看一个例子: 后台代码: GeekStudio.BLL.Blog optBlog = new GeekStudio.BLL.Blog(); Repeater1.DataSource = optBlog.GetModelList(); Repeater1.DataBind(); 其中,GetModelList()返回的是一个List。我们可以 …


C#获取进程、查找并结束进程

最近看到一个考试系统,有个功能是用来监视进程的。一旦发现如Communicator.exe这样的违禁软件就立即杀死进程并上报给服务器。我稍微研究了一下,这个功能实现起来其实很简单。就是使用ManagementObjectSearcher获取进程列表,然后放在一个Collection里,之后就可以按照自己的逻辑去做了。 下面是一个例子:获取进程列表、创建“违禁”进程名单、查找并杀死进程。注意先要在项目里添加System.Management的引用。using System; using System.Management; namespace ConsoleApplication3 { class Program { static void Main(string[] args) { / …