我一个小项目中..
在Gridview编辑状态的时候.有一列需要使用DropDownList.
这个DropDownList是在后台动态绑定的值(这个地方也弄了好一会).
现在就是在GridView1_RowUpdating事件的时候..
我要更新这个DropDownList的值,通过监视总是获取不到他的值..
不明白为什么..
(DropDownList)GridView1.Rows[GridView1.EditIndex].Cells[2].FindControl("xx");

(DropDownList)GridView1.Rows[GridView1.EditIndex].FindControl("xx");
都获取不到...花了一下午时间了...请各位大大帮忙看看..

解决方案 »

  1.   

    设个断点看看GridView1.EditIndex是不是有效值
    DropDownList是在第3列吗?
      

  2.   


    是的..
    GridView1.EditIndex 没问题.
    DropDownList 是在第3列.
    但就是取不到..我郁闷.
      

  3.   

    FindControl("xx"); //xx=DropDownList.ID?
      

  4.   


    ...显然是..
    现在的问题是
    (DropDownList)GridView1.Rows[GridView1.EditIndex].FindControl("xx"); 
    这句话来获取是不是有问题...
    里面的值都没有错的..
    或者另有其他方法来获取值?
      

  5.   

    用FindControl的方法获取DropDownList是可以的
    此时,界面上要有这个DropDownList,然后就是单元格的定位是否正确
      

  6.   

    在JS里  
    document.getElementById(gridview).Children[0].Children[0].Children[0].....这样查下去 看他的innerHTML属性 一步步找
    肯定能获取到
      

  7.   

    document.getElementById(gridview).innerHTML 这样可以看到你哪个对应的GRIDVIEW的innerHTML代码
    他的第一个Children[0].innerHTML  应该是去掉了TBODY
    document.getElementById(gridview).Children[0].Children 这样应该是TR的集合  也就是行的集合
    你确定那一行或者遍历也可以document.getElementById(gridview).Children[0].Children[i].innerHTML这样就是第i行innerHTML
    document.getElementById(gridview).Children[0].Children[i].Children 是该行对应的列集合了 也就是TD 集合
    你看清楚是那一行的就是document.getElementById(gridview).Children[0].Children[i].Children[j].innerHTML
    这就是该行该列的innerHTML属性了  也就能看到了吧??? 这一行里有多个控件就在写个Children 确定是第几个
    如果就一个控件 那应该就是这一个的document.getElementById(gridview).Children[0].Children[i].Children[j].Children[0].value属性了
    因为是自己边想边写的  可能里面有点小错误 自己更正下  反正一出问题 就看他的innerHTML属性就好 
    .Children 出来的是数组 
      

  8.   

    选择得值?DropDownList选择的值吗?DropDownList objList = (DropDownList)GridView1.Rows[GridView1.EditIndex].Cells[2].FindControl("xx"); 
    //这里的objList是什么值?
      

  9.   


    objList 是第一个选项的值
      

  10.   

    objList 是第一个选项的值? 
    =========================
    是不是更新哪行都是第一行变?那就是GridView1.EditIndex总是=0
      

  11.   

    你在page_load里加上if(!ispostback)判断一下,因为当我们点击更新的时候你没有判断的话gridview会先读一遍page_load,这样的话dropdownlist里面当然没值了
      

  12.   


    一语惊醒俺...我在page_load写了一次绑定的..
    刚我把page_load里的绑定注释了...就OK了..
    你牛...
    谢谢各位..结了...