Asp.Net获取GridView当前行的方法

1.将行按钮的CommandArgument绑定为当前行号

protected void RegInfo_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                Button btn = (Button)e.Row.FindControl("btnOk");
                if (btn != null)
                    btn.CommandArgument = e.Row.RowIndex.ToString();
            }
        }

在RowCommand方法里面做button的操作

protected void RegInfo_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Reg")
            {
                int currentRow = Convert.ToInt32(e.CommandArgument);
                if (((Button)RegInfo.Rows[currentRow].FindControl("btnOk")).Text == "注册")
                {
					......................
                }
            }
        }

2.直接在button事件里面获取行号

protected void btnOk_Click(object sender, EventArgs e)
{
      //行号
      int row = ((GridViewRow)((LinkButton)sender).NamingContainer).RowIndex; 
}

或者在RowCommand事件里面

protected void gv_Company_RowCommand(object sender, GridViewCommandEventArgs e){
 if (e.CommandName == "Reg")
{  
//【方法一】
GridViewRow drv = ((GridViewRow)(((LinkButton)(e.CommandSource)).Parent.Parent)); //此得出的值是表示那行被选中的索引值
int id=Convert.ToInt32(GridView1.DataKeys[drv.RowIndex].Value); //此获取的值为GridView中绑定数据库中的主键值
//注意:运用此方法,需要对GridView的DataKeyNames属性进行设置,此例中设置为主键字段。
//【方法二】
GridViewRow drv = (GridViewRow)((LinkButton)e.CommandSource).NamingContainer;//此得出的值是表示那行被选中的索引值
int id = Convert.ToInt32(GridView1.Rows[drv.RowIndex].Cells[0].Text);   //此获取的值为GridView中绑定数据库中的主键值,取值方法是选中的行中的第一列的值,drv.RowIndex取得是选中行的索引
  }
 }




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值