我从子页面把值传递给父页面的TextBox的Text属性,
 Response.Write("<script>window.opener.document.all['"+id+"'].value='" + str + "';window.opener=null;window.close();</script>");该值能够在父页面的TextBox中显示出来,但是我想把这个TextBox.Text值写进数据库的时候我发现,写的值始终是空的。我用Response.Write(TextBox1.Text);输出来看的时候是空字符串。
真奇怪,这个值能看到却得不到,请教各位高人。

解决方案 »

  1.   

    page_load
     if (!this.Page.IsPostBack)
            {        }
      

  2.   

    看到取不到?
    不会吧~~
    既然可以看到TextBox的值就直接取Text值啊
      

  3.   

    ViewState是保存本页面的值,两个页面不能用ViewState
      

  4.   

    我是说你在父页面中Page_load中
    ViewState获取textbox(id)的值
      

  5.   

    page_load 
     if (!this.Page.IsPostBack) 
            {         }
    重要疑点。Response.Write(" <script>window.opener.document.getElementById('"+id+"').value='" + str + "';window.opener=null;window.close(); </script>"); 
      

  6.   

    ViewState不可取,是页面对象的一个隐含属性,主要用于单一页面数据保存和使用,对于跨页面变量的使用,建议还是使用session比较合适,但是使用的时候,注意session的存储周期
      

  7.   

    试试把他给一个 hidden控件 赋值,然后再从后台读它。
    貌似aspnet读值是通过viewstat这个机制的,你直接从子页面用脚本给父页面的控件赋值,好像是不认的。
      

  8.   

    放个Hidden隐藏控件
    把TextBox赋给hidden就好了 或者在cs里面 Request["Textbox"]这样试试 
      

  9.   

    怀疑系统给你的TextBox从新分配ID了
    试试 TextBox.ClientID
    然后确实是给父窗体赋值是吧,可以用 opener.name= ??来做
      

  10.   

    你是不是TB写成onlyread
    个人见解,共同学习
      

  11.   

    检查源文件,看id是不是原来的id,
    或者用隐藏控件接受值试试看。
      

  12.   

    在.net中控件的值是存放在viewstat中的,你用脚本是不会改变它的值的。
      

  13.   

    同意的 lucky749  回答
      

  14.   

    這種情況我也碰到過,把textbox控件換成input type="hidden"控件就可以了
      

  15.   

    TextBox中是否用了只读??去掉只读就好了,我碰到过这个问题!
      

  16.   

    zhangshg2008说的话提醒了我,我textBox的Readonly属性设为true了,改为false解决了,感谢大家,结贴