取得了datalist中的的一个DataListItem 就知道该DataListItem所在行。 //也就知道了CheckBox1 DataListItem dlItem = (DataListItem)(((Control)sender).NamingContainer); int i = dlItem.ItemIndex; //取得该CheckBox所在的行index CheckBox ck = ((CheckBox)((Control)sender)); //取得该CheckBox} 2.现在假设有一个GridView,其中有一个LinkButton (CommandName属性为Add),当LinkButton 的Click事件时,获得LinkButton 所在的行数。 先在GridView的RowCreatedg事件中处理按钮的CommandArgument 属性,再在GridView的RowCommand事件中获得LinkButton 所在的行数。 addButton.CommandArgument = e.Row.RowIndex.ToString();//这里用到了CommandArgument 属性}} void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e){if(e.CommandName=="Add"){int index = Convert.ToInt32(e.CommandArgument);//在GridView的RowCreatedg事件中添加了CommandArgument