for (int i = 0; i < GridView1.Rows.Count; i++) { DataList dl = (DataList)GridView1.Rows[i].FindControl("DataList1"); foreach (DataListItem item in dl.Items) {
int index=((GridViewRow)((LinkButton)sender.NamingContainer)).RowIndex;
int index = ((GridViewRow)(((LinkButton)sender).Parent.NamingContainer)).RowIndex;
上面错了,改正: int index = ((GridViewRow)(((LinkButton)sender).NamingContainer.NamingContainer.NamingContainer)).RowIndex;
总结下: =========================== 如果要三层的话,如下: 最后一层要用NamingContainer int index = ((GridViewRow)(((LinkButton)sender).Parent.Parent.NamingContainer)).RowIndex; int index2 = ((GridViewRow)(((LinkButton)sender).NamingContainer.Parent.NamingContainer)).RowIndex; int index3 = ((GridViewRow)(((LinkButton)sender).Parent.NamingContainer.NamingContainer)).RowIndex; int index4 = ((GridViewRow)(((LinkButton)sender).NamingContainer.NamingContainer.NamingContainer)).RowIndex; =============================================================================== 如果要四层的话,如下: int index5 = ((GridViewRow)(((LinkButton)sender).Parent.Parent.Parent.Parent)).RowIndex;
方法其实很多,你可能还会发现,这样也行: int index6 = ((GridViewRow)(((LinkButton)sender).Parent.Parent.Parent.NamingContainer)).RowIndex;
方法其实很多,你可能还会发现,这样也行: int index6 = ((GridViewRow)(((LinkButton)sender).Parent.Parent.Parent.NamingContainer)).RowIndex;
((DataListItem)((RepeaterItem)Container).Parent.Parent).ItemIndex int rowIndex = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;
int i=Convert.ToInt32(gvr.cell[0].Text); //行号
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{ DataList dl = (DataList)GridView1.Rows[i].FindControl("DataList1"); foreach (DataListItem item in dl.Items)
{
LinkButton lbtn = (LinkButton)item.FindControl("LinkButton1");
lbtn.CommandName = i.ToString();
} }
} protected void LinkButton1_Command(object sender, CommandEventArgs e)
{
Response.Write(e.CommandName);
}
这个应该可以,如果不行就再Parent
===========================
如果要三层的话,如下:
最后一层要用NamingContainer
int index = ((GridViewRow)(((LinkButton)sender).Parent.Parent.NamingContainer)).RowIndex;
int index2 = ((GridViewRow)(((LinkButton)sender).NamingContainer.Parent.NamingContainer)).RowIndex;
int index3 = ((GridViewRow)(((LinkButton)sender).Parent.NamingContainer.NamingContainer)).RowIndex;
int index4 = ((GridViewRow)(((LinkButton)sender).NamingContainer.NamingContainer.NamingContainer)).RowIndex;
===============================================================================
如果要四层的话,如下:
int index5 = ((GridViewRow)(((LinkButton)sender).Parent.Parent.Parent.Parent)).RowIndex;
int index6 = ((GridViewRow)(((LinkButton)sender).Parent.Parent.Parent.NamingContainer)).RowIndex;
int index6 = ((GridViewRow)(((LinkButton)sender).Parent.Parent.Parent.NamingContainer)).RowIndex;
基本就是通过LinkButton获取Parent~~
e.RowIndex.ToString()
你取行号做什么呢?
其实可以取GRIDVIEW里的所选行的任何一个单元格里的内容。
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
Response.Write(e.RowIndex.ToString());
}
int rowIndex = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;