场景:开发一个简单的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]).Text

这样就可以成功取到超链接列的值了~