如题所示,下面是我的gridview的部分源码:
<Columns>
<asp:TemplateColumn HeaderText="选择列">
<HeaderStyle Width="50px"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox ID="chkSel" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>
...
</Columns>
在客户端解析后的源码为:
ID会被改变的 所有可以用jquery写
$('gridview的ID').find('tr:eq('+第几行+')').find('td:eq('+(第几列-1)+')').find('input')
更简单的写法是你在 input控件上加个data-name属性
$("[data-name='xxx']").eq(第几行) 这样获取
我知道ID会被改变的,所以我想取出这个ID,我的本来目的就是要个行号。
我先前做的方法是每勾选一次就遍历整个列表,觉得效率不高,所以来提问了。
@失落の熊熊:
data-name放ID
$("[data-name]").eq(第几行).attr("data-name") 这样获取
你是用ajax的方式提交数据的?
@tomcat1988: 这跟提交数据没有关系,我再说下我的原本的诉求。
我界面上有个列表,第一列打头的是勾选框,我通过勾选的勾选,去触发我的JS方法,获得该勾选框的客户端的ID,然后通过字符串的截取,取出当前的行号。
我原本的方法是,每次勾选后,然后根据客户端的源码的特点,遍历整个列表,如果勾选则取出该行行号,但是如果数据量大的话这个效率就很低了。
在勾选的回调函数里可以可以获取当前Checkbox所在td
↓
通过td获取tr
↓
通过tr的rowIndex属性获取该行行号
<% = Control.ClientID %>
感谢热心的园友们的回答,我自己处理好了:
<asp:CheckBox ID="chkSel" runat="server" onclick="doCheckReuslt1(this.id);" />
在CheckBox里面加个onclick事件,如上,其中this.id的值就是:“idgList__ctl2_chkSel”...
这样就能截取到对应的"2"这个值了。