露雨城市-南京.NET爱好者
主要讨论的为C#,ASP.NET,Sql Server2005,包括VSTS 2005的相关工具和功能。
很多朋友问,点击GridView中自定义的一个模版内的控件,如何知道是点击的哪一行。
可能很多朋友都是熟悉了DataGrid的模式,说GridView还没有DataGrid好。
其实GridView还是非常强大的。特别是配合DetailsView来使用。

其实如何得到当前选择的行呢,很简单,使用Parent属性就可以呀。
比如我们自定义了一个LinkButton,那么当我们点击这个控件时如何知道它在GridView中所在的行呢,很简单,请看下面的代码。
1    protected void LinkButton1_Command(object sender, CommandEventArgs e)
2    {
3        LinkButton lb = (LinkButton)sender;
4        DataControlFieldCell dcf = (DataControlFieldCell)lb.Parent;
5        GridViewRow gvr = (GridViewRow)dcf.Parent;
6        GridView1.SelectedIndex = gvr.RowIndex;
7    }

是不是很简单呀,我们使用第一个Parent属性的时候就会将LinkButton的范围扩大到DataControlFieldCell(当前按钮所在表格中的列单元),然后再使用一次Parent属性,可以再将列单元的范围扩大到GridViewRow(当前列单元所在的行单元),这个时候使用行单元的RowIndex属性就可以得到当前行所在表格的序号了。

所以请大家不要随便说GridView还不如DataGrid了哦。其时asp.net2.0的新控件比1.1要多很多,而且也强大了不少。欢迎大家有什么问题再来一起交流哦。
posted on 2006-04-24 21:38  露雨城市.NET2.0和Sql Server 2005开发研究  阅读(3906)  评论(7编辑  收藏  举报