详见下面代码,通过 ((GridViewRow)(chk.NamingContainer)).RowIndex 即可获得当前选择行的行号,行号有了之后就可以根据行号取任意列的数据了。
问题关键所在是这里的CheckedChanged事件传入的参数sender为CheckBox,退过NamingContainer可以获取当前checkbox所在容器对象,即gridviewrow
protected void chkrow_CheckedChanged(object sender, EventArgs e)
{
CheckBox chk = sender as CheckBox;
int index = ((GridViewRow)(chk.NamingContainer)).RowIndex;
if (chk.Checked)
{
this.lbmargemx.Text += this.gvordermx.Rows[index].Cells[1].Text.Trim() ;
}
}