响应 RowCommand 事件        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            var gridView = sender as GridView;
            int rowIndex = int.Parse(e.CommandArgument as string);
            var row = gridView.Rows[rowIndex];
            if (e.CommandName == "myButton")
            {
                //TODO..
            }
        }

解决方案 »

  1.   

    http://tech.ddvip.com/2008-10/122421058978931.html另一种做法:你可以在绑定数据时为按钮绑定自定义属性,例如<asp:Button .....  my-bind-data='<%# GetMyBindData((string)Eval("ProductID")) ' .... >你可以写一个 GetMyBindData 函数,通过绑定对象获取ID编号做为Button的一个自定义属性而存在。然后再按钮的Click事件处理中重新获取它var btn = (Button)sender;
    var id = btn.Attributes["my-bind-data"];
    通过str就可以得到这个按钮对应的产品ID。
      

  2.   

    <asp:Button .....  my-bind-data='<%# GetMyBindData((string)Eval("ProductID"))  %>' .... >
      

  3.   

    如果只是绑定ID,你可以直接写<asp:Button .....  my-bind-data='<%# Eval("ProductID")  %>' .... >
    如果是更复杂的,才需要自定义一个转换函数 GetMyBindData。总之,这里最关键的技术是:自定义属性,然后在后台的事件处理中你就可以取出这属性值。
      

  4.   


        protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
           {        
               int RowIndex = int.Parse(e.CommandArgument as string);
                string s1 = GridView1.Rows[RowIndex].Cells[0].Text.ToString();
                string s2 = GridView1.Rows[RowIndex].Cells[3].Text.ToString();
    }
      

  5.   


     可能是我描述有点问题我想做到的是点击该按钮然后获取该行数据 
    借书证号 和 图书编号的值;可是当我点击按钮时响应的却是 如下 Button2_Click2 事件,而不是大家说的 GridView1_RowCommand 事件;问题出在哪,我很不解,希望指点下。
      

  6.   


     可能是我描述有点问题我想做到的是点击该按钮然后获取该行数据 
    借书证号 和 图书编号的值;可是当我点击按钮时响应的却是 如下 Button2_Click2 事件,而不是大家说的 GridView1_RowCommand 事件;问题出在哪,我很不解,希望指点下。报错这个错
      

  7.   

    用:ButtonField
    <asp:GridView ID="GridView1" runat="server" onrowcommand="GridView1_RowCommand"  Width="336px"  >
        <Columns>
            <asp:ButtonField CommandName="Cancel" Text="借阅" />
        </Columns>
    </asp:GridView>
      

  8.   


       protected void Button1_Click(object sender, EventArgs e)
            {          
                Button btn = (Button)sender;          
                GridViewRow row = (GridViewRow)btn.Parent.Parent;
                string s = row.Cells[2].Text;
                Response.Write(s);
            }