请问各位大虾,如果我点击datagrid的任何一行的任何地方(注:不是在datagrid里面邦定Linkbutton来实现超联接),怎么获取被点击行所有列的内容到弹出的新页面中的textbox中,能否给出详细一点的程序,而不是只有这么一句:Datagrid1.Items[i].Cells[j].Text等等。谢谢各位大虾提供一下程序
如不方便在这上面贴出,请各位大虾给出联系方式,我再跟你们联系,好吗? 谢谢!我的联系方式:
[email protected]

解决方案 »

  1.   

    在绑定之后,立即执行如下语句 
    //假设你有3列
    string a1 = "";
    string a2 = "";
    string a3 = "";
    for(int i=0;i<this.myGrid.Items.Count;i++)
    {
    a1 = this.myGrid.Items[i].Cells[0].Text;
    a2 = this.myGrid.Items[i].Cells[1].Text;
    a3 = this.myGrid.Items[i].Cells[2].Text;
    this.myGrid.Items[i].Attributes.Add("onclick","window.open('xxx.aspx?a1=" + a1 + "&a2=" + a2 + "&a3=" + a3 + "','','');");
    }
      

  2.   

    所有列的内容到弹出的新页面中的textbox中,
    ----------------
    然后在新页面里面,去接收并赋值给textbox.
    我不知道你是不是已经有页面弹出了要赋值,还是要弹出新页面?
      

  3.   

    string v1=((TextBox)e.Item.Cells[2].Controls[0]).Text.Trim();
    就可以了
      

  4.   

    hchxxzx(NET?摸到一点门槛) :我的意思是弹出的新页面里的textbox接收前面被我点击的datagrid某一行的所有列的值
    比如,我datagrid中有这么二行,第一行有三列,其中的值为1,2,3
                                  第二行同样有三列,值为4,5,6
    当我点击上面二行任何一行时,在弹出的新页面中也有三个textbox,它们分别对应显示着被点击行的列的值,谢谢你在指导~!
      

  5.   

    按我前面的方法,是点击某行之后,弹出一个窗口,在此窗口内,你可以通过取参数的方式来获取值
    //this.myGrid.Items[i].Attributes.Add("onclick","window.open('xxx.aspx?a1=" + a1 + "&a2=" + a2 + "&a3=" + a3 + "','','');");//取值
    string a1 = this.request.querystring["a1"];
    string a1 = this.request.querystring["a1"];
    string a1 = this.request.querystring["a1"];//赋值
    this.textbox1.Text = a1;
    this.textbox2.Text = a2;
    this.textbox3.Text = a3;上述方式是在父页面加载的时候,就把要传递的值取出来放在事件里,用传值的方式传递给新打开的窗口.
    你可试试看这种方式,如果有问题你再提出来.
      

  6.   

    给你一个提示:
    1、在单击DataGrid行时,获得该行的主键值
    2、将获得的主键值传给第二个页面,打开第二个页面
    3、在第二个页面中根据主键值查找这条记录,依次绑定到TextBox显示