在C#的web开发界面里有一个TextBox1,我想双击它打开一个子窗体,然后在子窗体的GridView中通过双击某行得到一列的值,并传回到TextBox1....
谢谢各位高手提供思路及关键部分代码!!!

解决方案 »

  1.   

    脚本打开一个页面,再回传到页面。
    实际实行起来不是很舒服,建议可以的话在一个页面实现功能,可以把gridview放plane里面,用按纽控制
      

  2.   

    可以在子页面的里添加双击事件方法在方法里注册js代码关闭子页面并对父页面赋值.window.opener对控件赋值..
      

  3.   

    顶楼上!把 gridview 先隐藏起来。双击textbox时,再显示。这样的话,不需要再实例化值。少写一些代码。当然从另一个页面传值也是可以的。也就是在textbox所在的页面建一个私有成员。用来继承gridview页面,在gridview界面定义一个公共成员。用来获得gridview双击的值。再赋值给textbox
    page1
    private form2 mf=null;
    public form1(form2 fm)
    {
      mf=fm;
       InitializeComponent();
    }
    再加个属性
    public form2 Myfrom()
    {
      set{mf=value);
    }
    textbox1.text=mf.s;page2public string s;
    public form1(form2 fm)
    {
       s=gridview的返回值;
       InitializeComponent();
    }
      

  4.   

     父窗体的html
    <script>
    function bind(text)
    {
      form1.aa.value=text;
    }
    </script>
    <inupt id="aa" type="text" onclick="打开子窗体" />字窗体当你点击事件后运行下面
    base.Response.Write("<script>window.opener.bind("你要回传的值");window.close();</script>");
                 
      

  5.   

    无法实现所要效果...我用的是webform...不是winform..请教高手赐教~!!
      

  6.   

    自己搞出来了..不过还是要谢谢大家回答...这个问题搞死我了..我把我实现的代码贴在下面,,方便那些还不会的兄弟!    protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["username"] == null)
            {
                Response.Write("<script language=javascript>window.top.location=\"default.aspx\";</script>");        }
        }//这个是双击Textbox框弹出窗口
     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {        if (e.Row.RowType == DataControlRowType.DataRow)
            {
                           
    e.Row.Attributes.Add("ondblclick", "window.opener.document.getElementById('TextBox2').value=this.cells[0].innerHTML;window.close()");
        
            }
        }//这个是回传到Textbox框