子页面数值回传父页面有关问题

子页面数值回传父页面问题
小弟是个新手,最近试做这么一个东西,父页面用window.open开启子页面
然后从子页面用window.opener方式回传数据至父页面控件。
function gridview_selectrow(tno,temp,tvacation)
        {
            window.opener.document.all["TextBox8"].value = tno;
            window.opener.document.all["TextBox2"].value = temp;
            window.opener.document.all["DropDownList1"].value = tvaction;    
       window.opener.document.all["Button3"].Enabled = true;    
        }
如上,textbox的赋值是可以实现的,问题是DropDownList的值怎么处理,请赐教,多谢!
 
另最后一语句,用javascript能控制父页面button控件的可用性吗?如何实现?
------解决方案--------------------

//不能直接用["DropDownList1"].value,试试这个
DropDownList1.options[DropDownList1.selectedIndex].value

------解决方案--------------------
我用的window.showModalDialog()
给你代码 自己瞧瞧

function show()
     {
        var url="要打开的页面.aspx?tm="+new Date().toString();
        var someValue=window.showModalDialog(url,"","dialogWidth=800px;dialogHeight=700px;status=no;help=no;scrollbars=no");
        // document.form1.p1t.value=someValue;
        if(someValue !=undefined)
        {
           var value=someValue.split('_');//返回的值截取
           $("#控件ID").val(value[0]);
        }
     }
    </script>


打开页面代码

 /// <summary>
    /// 选中 事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        string id = this.GridView1.DataKeys[this.GridView1.SelectedIndex].Value.ToString();//参数
        DataSet ds = BLL.方法名(参数ID);//获取数据源
        string aa= ds.Tables[0].Rows[0]["字段名"].ToString();
        string bb= ds.Tables[0].Rows[0]["字段名"].ToString();
        string values = aa.Trim() + "_" + bb.Trim();
        Page.ClientScript.RegisterStartupScript(this.GetType(), "", "a('" + values + "')", true);//a()是页面前台JS方法即返回父页面的方法
    }

 打开页面的前台JS代码

 function a(values)
    {
     parent.window.returnValue=values;  //父窗口就是上一个页面
     window.close();
    }