同样的代码在我机报错,发给一朋友机上,啥没动就全部OK了?(注:DataGrid中更新事件中的)
代码:
1、string cName=((TextBox)e.Item.Cells[2].FindControl("TextBox2")).Text;
2、string cName=((TextBox)e.Item.Cells[2].Controls[0]).Text;
问题是:
上面代码1运行OK,但取出的值是更改前的,而更改后的取不到???
而换用代码2运行也OK,一运行到此就报"指定的转换无效",但将Controls[0]改为Controls[1]就不错(注我只有一个控件呀,索引咋变成1了呢?),但结果也和1是一样,取不到改后的就是这段代码,我将整个发给一朋友,他说运行完全OK,还更改成功了呢??怪不怪,,,,大家说说????

解决方案 »

  1.   


    2、string cName=((TextBox)e.Item.Cells[2].Controls[0]).Text;
    那可能是因为第二个控件才是你要的..
      

  2.   

    哦,Controls[0]或Controls[1]都不紧要,可能我索引搞错了,但怎么两种都能取的时候,
    总是取到更改前的值呢???我的确是改了呀,,改后的就取不出来呢》????等待中
      

  3.   

    呵呵,我好像也碰过过类似的情况,那个vs.net好像会做手脚似的
      

  4.   

    你的数据邦订事件是否是这样的
    if(!Page.IsPostBack)
    {
      处理邦订
    }
    如果不是那么就是你每次取值时,页面要回传到服务器处理就重新邦订数据,所以就出现你说的情况
      

  5.   

    唉呀,,楼上的,真是一语超惊醒梦中人呀。害我搞了一下午调试改代码找不到原因,,
    这个VS.NET,他NND的,搞个IsPostBack,,,折腾死我了,,这个小地方,做梦也没想到大意了
    谢谢了。。