首页 新闻 搜索 专区 学院

JS如何获取客户端gridview单元格控件ID

0
悬赏园豆:5 [已解决问题] 解决于 2013-05-17 14:11

如题所示,下面是我的gridview的部分源码:

<Columns>
<asp:TemplateColumn HeaderText="选择列">
<HeaderStyle Width="50px"></HeaderStyle>
<ItemTemplate>
<asp:CheckBox ID="chkSel" runat="server" />
</ItemTemplate>
</asp:TemplateColumn>

...

</Columns>

在客户端解析后的源码为:

<input id="idgList__ctl2_chkSel" type="checkbox" name="idgList:_ctl2:chkSel" />
...
我就想取出这个ID
在线等大神解答。。
失落の熊熊的主页 失落の熊熊 | 初学一级 | 园豆:79
提问于:2013-05-17 09:13
< >
分享
最佳答案
0

ID会被改变的  所有可以用jquery写

$('gridview的ID').find('tr:eq('+第几行+')').find('td:eq('+(第几列-1)+')').find('input')

收获园豆:3
丫的 | 小虾三级 |园豆:1575 | 2013-05-17 09:22

更简单的写法是你在 input控件上加个data-name属性

$("[data-name='xxx']").eq(第几行) 这样获取

丫的 | 园豆:1575 (小虾三级) | 2013-05-17 09:24

我知道ID会被改变的,所以我想取出这个ID,我的本来目的就是要个行号。

我先前做的方法是每勾选一次就遍历整个列表,觉得效率不高,所以来提问了。

失落の熊熊 | 园豆:79 (初学一级) | 2013-05-17 09:24

@失落の熊熊: 

data-name放ID

$("[data-name]").eq(第几行).attr("data-name") 这样获取

你是用ajax的方式提交数据的?

丫的 | 园豆:1575 (小虾三级) | 2013-05-17 09:28

@tomcat1988: 这跟提交数据没有关系,我再说下我的原本的诉求。

我界面上有个列表,第一列打头的是勾选框,我通过勾选的勾选,去触发我的JS方法,获得该勾选框的客户端的ID,然后通过字符串的截取,取出当前的行号。

我原本的方法是,每次勾选后,然后根据客户端的源码的特点,遍历整个列表,如果勾选则取出该行行号,但是如果数据量大的话这个效率就很低了。

失落の熊熊 | 园豆:79 (初学一级) | 2013-05-17 09:37
其他回答(3)
0

在勾选的回调函数里可以可以获取当前Checkbox所在td

通过td获取tr

通过tr的rowIndex属性获取该行行号

收获园豆:1
TiestoRay | 园豆:687 (小虾三级) | 2013-05-17 11:21
0

<% = Control.ClientID %>

收获园豆:1
@@@一统@@@ | 园豆:1551 (小虾三级) | 2013-05-17 12:35
0

感谢热心的园友们的回答,我自己处理好了:

<asp:CheckBox ID="chkSel" runat="server" onclick="doCheckReuslt1(this.id);" />

在CheckBox里面加个onclick事件,如上,其中this.id的值就是:“idgList__ctl2_chkSel”...

这样就能截取到对应的"2"这个值了。

失落の熊熊 | 园豆:79 (初学一级) | 2013-05-17 14:10
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册