RT 高手帮解答一下呗 憋了好久了 要在哪个函数里写什么啊 加上代码啊

解决方案 »

  1.   

    在LinkButton的Click事件中写 GridViewRow gvr=(GridViewRow)((sender as LinkButton).Parent.Parent) ;
     int i=Convert.ToInt32(gvr.cell[0].Text); //行号 
      

  2.   

        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
     
            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);
        }
      

  3.   


    这个应该可以,如果不行就再Parent
      

  4.   

    int index=((GridViewRow)((LinkButton)sender.NamingContainer)).RowIndex;
      

  5.   

     int index = ((GridViewRow)(((LinkButton)sender).Parent.NamingContainer)).RowIndex;
      

  6.   

    上面错了,改正: int index = ((GridViewRow)(((LinkButton)sender).NamingContainer.NamingContainer.NamingContainer)).RowIndex;
      

  7.   

    总结下:
    ===========================
    如果要三层的话,如下:
    最后一层要用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;
      

  8.   

    方法其实很多,你可能还会发现,这样也行:
    int index6 = ((GridViewRow)(((LinkButton)sender).Parent.Parent.Parent.NamingContainer)).RowIndex;
      

  9.   

    方法其实很多,你可能还会发现,这样也行:
    int index6 = ((GridViewRow)(((LinkButton)sender).Parent.Parent.Parent.NamingContainer)).RowIndex;
      

  10.   

    方法有很多,楼上已经列了不少!
    基本就是通过LinkButton获取Parent~~
      

  11.   

    分清楚parent和NamingContainer的作用就行了,parent获取父容器,NameingContainer获取其(的父容器的父容器的父容器....)中最接近的继承INameingContainer接口的容器。像GridViewRow和DataListItem都继承了INameingContainer
      

  12.   

    当然所选择的行号:int index=gv.SelectedIndex;当然所编辑的行号:int index = gv.EditIndex;
    e.RowIndex.ToString()
    你取行号做什么呢?
    其实可以取GRIDVIEW里的所选行的任何一个单元格里的内容。
        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            Response.Write(e.RowIndex.ToString());
        }
      

  13.   

    ((DataListItem)((RepeaterItem)Container).Parent.Parent).ItemIndex  
    int rowIndex = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;