gridview中嵌套checkbox,如何在选中事件中获取当前行的索引值
我从GridView1模板列中拖一CheckBox1,然后想在CheckBox2_CheckedChanged事件中实现:点击CheckBox1选中的话就获取当前行的索引...
我从GridView1模板列中拖一CheckBox1,然后想在CheckBox2_CheckedChanged事件中实现:点击CheckBox1选中的话就获取当前行的索引值,本来我是想用if(((CheckBox)GridView1.Rows[e.RowIndex].FindControl("checkbox1")).Checked==true)做判断条件的!可是发现[e.RowIndex]中e的RowIndex属性调不出来,没辙了,于是特来请教各位高手指点,最好附带些解释说明,非常感谢!
用循环我已经实现了,但表大的时候明显响应速度慢!我就想点哪行的checkbox,就能直接获取当前行索引或行标都行,因为我需要在此行上触发一系列动作。 展开
用循环我已经实现了,但表大的时候明显响应速度慢!我就想点哪行的checkbox,就能直接获取当前行索引或行标都行,因为我需要在此行上触发一系列动作。 展开
1个回答
展开全部
我想我解决你的问题了:
在你的事件里,
取((CheckBox)sender).Parent.Parent会取到你的控件所在的那一行。再转换一下
(GridViewRow)((CheckBox)sender).Parent.Parent)就得到了那个GridViewRow对象,之后取RowIndex什么的就随你意了。
——————————————————
你的e是普通的EventArg,当然不可能有e.RowIndex属性。
有两种方法。
一种是不用取当前行的索引值,直接用CheckBox2_CheckedChanged方法中的参数sender。
(CheckBox)sender就是将sender转化为一个CheckBox对象,你做相应判断就可以了。
另外一种要麻烦些。
你写一个循环,对GridView里面的每一行中的((CheckBox)GridView1.Rows[i].FindControl("checkbox1")).Checked进行判断。
但这两种方法你都仍然无法判断触发事件的是哪一行。
在你的事件里,
取((CheckBox)sender).Parent.Parent会取到你的控件所在的那一行。再转换一下
(GridViewRow)((CheckBox)sender).Parent.Parent)就得到了那个GridViewRow对象,之后取RowIndex什么的就随你意了。
——————————————————
你的e是普通的EventArg,当然不可能有e.RowIndex属性。
有两种方法。
一种是不用取当前行的索引值,直接用CheckBox2_CheckedChanged方法中的参数sender。
(CheckBox)sender就是将sender转化为一个CheckBox对象,你做相应判断就可以了。
另外一种要麻烦些。
你写一个循环,对GridView里面的每一行中的((CheckBox)GridView1.Rows[i].FindControl("checkbox1")).Checked进行判断。
但这两种方法你都仍然无法判断触发事件的是哪一行。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询