我想在打开的页面(目标页面)里选择内容,例如从DropdownList里选择一项,然后关闭目标页面后把值传递给前一个页面(源页面)里GridView里的一个TextBox,如何做到呢?
搜索了很长时间,发现只提到了在源页面里公开一个属性,然后在目标页面里引用这个属性,但是如果我想设置的控件是在一个GridView里,该如何办呢?

解决方案 »

  1.   

    把ddl的选中的值保存在session里,目标页面里根据session来设置
      

  2.   

    我是想在目标页面点确认关闭后,源页面里的TEXTBOX自动设置为我选择的值啊
      

  3.   

    不知道楼主的页面是怎么打开的
    我猜是在 原页面的gridview的某一行 做操作后弹出目标页面 选择dropdown 的值赋给 griview改行的某个textbox
    如果是window.open
    可以在原页面中写个js 方法 叫setValue,用js 找到那个textbox 赋值 gridview在客户端是个table 所以找textbox很容易在目标页面 选择后 用window.opener.setValue("选择的值");
      

  4.   

    1、可以利用Session、cookie 、application、cache 等状态来保存值,页面之间是可以访问的。比如:将DropDownList1.SelecteValue的值赋给Session ,在另一个页来判断是否为空,再赋值。
    2、传送参数:
    response.write("<script>window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+DropDownList1.SelectedValue+"')</script>")
    接收参数:
    string a = Request.QueryString("id");
    string b = Request.QueryString("id1");
    3、Server.Transfer()方法,这个方法用的不多。
      比如:a.aspx的C#代码
     public string TValue
    {
       get
       { 
        return DropDownList1.SelectedValue;
       }
    }private void DropDownList1_SelectedIndexChange(object sender, System.EventArgs e)
    {
        Server.Transfer("b.aspx");
    }b.aspx中C#代码
    private void Page_Load(object sender, EventArgs e)
    {
        a newWeb; //实例a窗体     newWeb = (source)Context.Handler;
        string tvalue; 
        tvalue = newWeb.TValue;
    }