想了很久也不知道怎样在点击事件那里获取点了那行的索引 

解决方案 »

  1.   

    例如你的模板列Button在第5列,(从0算),名称为Button1 
    在GridView1的RowDataBound事件中的代码: 
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 

        if (e.Row.RowType == DataControlRowType.DataRow) 
        { 
            ((Button)e.Row.Cells[5].FindControl("Button1")).CommandArgument = e.Row.RowIndex.ToString(); 
        } 
    } 在Button1的click事件中获得行号: 
        protected void Button1_Click(object sender, EventArgs e) 
        { 
            Button myL = (Button)sender; 
            string no = myL.CommandArgument.ToString(); //no是你要的行号
        } 
      

  2.   

    点击事件响应的是RowCommand方法。在这个方法里处理点击事件。
    处理的方法好几种,比如你可以把索引值标在GridView里面的一个Label字段里,可以隐藏这个Label.然后点击事件后,在RowCommand里搜索这个Label,获取它的Text值就可以了
      

  3.   

    第二种方法:
    1.添加模板列Button在第5列,(从0算),名称为Button1,
    2.设置Button1的CommandName属性等于"Select";
    3.在GridView1的SelectedIndexChanged事件中获取行号:
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            string no = GridView1.SelectedIndex.ToString();//no是你要的行号 
        }
      

  4.   

    按钮加CommandArgument="<%#((GridViewRow)Container).RowIndex%>"