在GridView中有两个模板列,两个模板列中都绑定了TextBox按件,现在需要在客户端用JavaScript遍历其中某一列的TextBox(注意是某一列,不是全部),GridView中的数据是内存中的DataTable,行是动态的,不知如何实现法,请高手们指教...

解决方案 »

  1.   

    gridview查看html,找它的规律id,它在前台为表格,
    用for,我就是这样做的
    比如s1在html里为griddetial1__ctl2_s1,
        s2           griddetial1__ctl3_s1,
      

  2.   

    t = document.getElementById("<%=GridView.ClientID%>")
    var cellNum = 3 //第4列
    for(i = 0;i<t.rows.length;i++)
    {
     alert(t.rows[i].cells[cellNum].innerHTML)
     inputs = t.rows[i].cells[cellNum].getElementsByTagName("INPUT")[0]
     alert(inputs.value)
    }
      

  3.   

    如果不算标题从1开始for(i =1;i<t.rows.length;i++)
      

  4.   

    to net_lover(【孟子E章】):
    首先谢谢【孟子E章】!
    在第一行处,即:
    t = document.getElementById("<%=GridView.ClientID%>")
    返回的t等于null啊?注:"GridView"我已经改成自己的GridView的ID号了
      

  5.   

    个你一个我以前写的源代码参考一下var tb = document.getElementById("tbSchedule");
    if(typeof tb!="undefined" && tb!=null)
    {
    var rowCount = tb.rows.length;
    var cellCount = tb.rows[1].cells.length;

    for(var m=1;m<rowCount;m++)
    {
    for(var n=1;n<cellCount;n++)
    {
    var cell = tb.rows[m].cells[n];
    if(typeof cell!="undefined" && cell!=null)
    {
    if(cell.style.backgroundColor=="blue")
    cell.style.backgroundColor="white";
    }
    }
    }
    }
      

  6.   

    谢谢各位,按“WNASP(这年头什么都“和谐”)”的方法已经解决,
    但还是有一个问题不知道是为什么:
    在客户端取服务器端控件的时候有时候直接用document.getElementById()可以,有时候又不行,这是为何? 想知道这个问题的答案,下午结贴
      

  7.   

    t = document.getElementById("<%=GridView.ClientID%>")
    返回的t等于null啊?不可能吧,你的js是在apsx里面的吗?
      

  8.   

    document.getElementById()ID有时取不到的问题 有可能是套母板页ID变了就取不到了
      

  9.   

    1.
    Control.ID 表示服务器控件的在服务器【代码范围】的有效 ID
    Control.ClientID 表示其呈现为 html 元素对应的客户 id
    Control.UiqueID 表示其呈现为 html 元素对应的客户 name2.
    在客户端取服务器端控件的时候有时候直接用document.getElementById()可以,有时候又不行,这是为何?=========document.getElementById(clientElementId)  假如 clientElementId 引用正确,不可能取不到!!!t = document.getElementById("<%=GridView.ClientID%>")
    返回的t等于null啊?这种问题,只有你自己能够检查——打开生成的 html 查找 是否具有 id 为 【GridView1.ClientID 真实值】的元素 ....
      

  10.   

    net_lover(【孟子E章】) :
    代码放在单独的js文件中就返回了null
    如果代码放在aspx如下信息:
    “控件包含代码块(即 <% ... %>),因此无法修改控件集合。”
      

  11.   

    net_lover(【孟子E章】) :
    代码放在单独的js文件中就返回了null
    如果代码放在aspx文件中,生成的时候通过了,但启动的时候却返回如下信息:
    “控件包含代码块(即 <% ... %>),因此无法修改控件集合。”
      

  12.   

    to Jinglecat(晓风残月):
    生成的html文件是有id的===================================================================
    这种问题,只有你自己能够检查——打开生成的 html 查找 是否具有 id 为 【GridView1.ClientID 真实值】的元素 ....
      

  13.   

    代码放在单独的js文件中就返回了null
    这是必然的一定要放在aspx里的,哪怕只定义一个变量t = document.getElementById('<%=GridView.ClientID%>')
      

  14.   

    代码放在单独的js文件中就返回了null
    这是必然的一定要放在aspx里的,哪怕只定义一个变量tid = '<%=GridView.ClientID%>'js文件写
    document.getElementById(tid)
      

  15.   

    gridview查看html,找它的规律id,它在前台为表格,
    用for,我就是这样做的
    比如s1在html里为griddetial1__ctl2_s1,
        s2           griddetial1__ctl3_s1,这个方法我也用过 就是比较土了点用孟老大的方法应该不错
      

  16.   

    问题解决了,谢谢各位。to: net_lover(【孟子E章】): 
    把 tid = '<%=GridView.ClientID%>' 这一句放在页面最下方终于通过测试,在此谢谢孟老大!
      

  17.   

    解决了问题,学到了知识,感觉分太少,对不住大家,所以另开一贴,大家去领分啊:http://community.csdn.net/Expert/topic/5737/5737672.xml?temp=.9326593