如果使用html控件还好一些,服务器控件就比较郁闷一些,因为GridView生成之后是多行的,所以这个文本框也会有很多个,另一方面asp.net会自动重新命名控件,所以想通过ID获取已经不可能了,很不幸的是连name属性都被自动生成了,哪怕你添加了name属性,也无法覆盖生成的name,而是会出来两个name属性
那么就想别的办法,如果在GridView中只有一个模板列(其实是要求生成后一行只有一个input,那么可以使用下面这种办法:
var txtbx = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
for(var i=0;i<txtbx.length;i++){
// txtbx[i]可以循环取出一个个文本框
}
如果有很多个,那么可以使用下面的办法:
var txtbx = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
for(var i=0;i<txtbx.length;i++){
if(txtbx[i].id.indexOf("txtbx")!=-1){
// 这里的txtbx[i]就是你想要的,生成的ID里会包含你原来的ID
}
}
那么就想别的办法,如果在GridView中只有一个模板列(其实是要求生成后一行只有一个input,那么可以使用下面这种办法:
var txtbx = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
for(var i=0;i<txtbx.length;i++){
// txtbx[i]可以循环取出一个个文本框
}
如果有很多个,那么可以使用下面的办法:
var txtbx = document.getElementById("<%=GridView1.ClientID%>").getElementsByTagName("input");
for(var i=0;i<txtbx.length;i++){
if(txtbx[i].id.indexOf("txtbx")!=-1){
// 这里的txtbx[i]就是你想要的,生成的ID里会包含你原来的ID
}
}