请问两个页面之间例如A和B 怎么才能A页面的输出值赋予B页面的DataGrid的编辑模板上的一个TEXTBOX?修改报表时候需要用到从别的页面返回,所以。

解决方案 »

  1.   

    通过查看源代码
    DataGrid的文本框ID已经变为id="DataGrid1__ctl2_TreeTypeName" 
    并且ct12这些数字是变化的。
    所以返回也不能写固定 
    如果不是DataGrid内部的文本框,本可以写为
    function showItem(which,id,cName){
    eval('window.opener.document.all.'+which+'.value="'+id+'"')
    }来实现,,
    但现在的问题是DataGrid1的内部文本框问题
      

  2.   

    假设你已经到到了传递来的值,现在是想把它写到datagrid里面的一个文本框里面.
    那么,又假设你已经知道了要写入到datagrid哪一行的文本框,假设是第1行,那么
    string str = .....;
    TextBox txt = (TextBox)this.DataGrid1.Items[0].FindControl("此文本框的ID(服务端)");
    txt.Text = str;
      

  3.   

    现在的问题是 DATAGRID的每行的ID都不同,变成了 
    DataGrid1__ctl2_TreeTypeName
    DataGrid1__ctl3_TreeTypeName
    DataGrid1__ctl4_TreeTypeName
    DataGrid1__ctl5_TreeTypeName
      

  4.   

    现在的问题是 DATAGRID的每行的ID都不同,变成了
    -----------------
    这个客户端的ID你在服务器端操作根本用不着去管它。
    比如你的控件原名为TextBox1,那么在生成HTML之后,它会变化成各种各样的ID,但只要你知道自己要把值写到哪一行的文本框里面去,你尽可以直接操控该行的TextBox1对象即可。
    不过,可能你要实现的目的并非如此,比如,是弹出一个窗口然后传递回值,此时你就需要知道需要把值传递到某个客户端的输入框,其实这也是可以做到的。比如,你可以直接把某客户端对象传递到取值的页面,如下:
    int icount = this.DataGrid1.Items.Count;
    for(int i=0;i<icount;i++)
    {
    TextBox txt = (TextBox)this.DataGrid1.Items[i].FindControl("TextBox1");
    txt..Attributes.Add("onclick","window.open('xxx.aspx?txtname=" + txt.ClientID + "','','');");
    }如上,当点击该输入框的时候,即会向弹出页面传递该输入框的名称。
      

  5.   

    可能有一个按钮触发选择的事件
    可以通过按钮的ID去解析文本框的ID或者可以通过多带一个参数 showItem(this) {...}
      

  6.   

    hchxxzx(NET?摸到一点门槛
    就是这个需求:是弹出一个窗口然后传递回值
    麻烦指教一下。
    能具体一点吗?谢谢你了,
    分不够再给。。
      

  7.   

    txt.ClientID 
    请注意这一句,你所说的ID 都在变化,通过这个属性就可以知道某文本框在客户端的ID