将值从弹出页面传输到父页面

时间:2012-04-05 05:53:27

标签: javascript asp.net c#-4.0

我有一个父页面inner4.aspx和一个弹出页面popupemail.aspx。现在发生的事情是我在弹出窗口中提取电子邮件ID并在gridview中显示,当用户选择电子邮件ID时,它会通过javascript函数传输到父页面。

父母代码:

function setText1(txt) {
            document.getElementById('TextBox4').value = txt;
        }

POPUP代码:

protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        GridViewRow row = GridView1.SelectedRow;
        //TextBox2.Text = row.Cells[1].Text;


        ScriptManager.RegisterStartupScript(this,GetType(), "settxt", "setText1('"+ row.Cells[1].Text + "');", true);
    }

这些值未转移。  请帮忙

3 个答案:

答案 0 :(得分:1)

将修改后的行复制到您的代码

ScriptManager.RegisterStartupScript(this,GetType(), "settxt", "window.opener.setText1('"+ row.Cells[1].Text + "');", true);

答案 1 :(得分:0)

您可以使用

使用javascript调用父页面
window.opener.document.getElementById("TextBox4").value = txt;

或者你可以通过同样的方式调用父页面功能

window.opener.setText();

setText()函数写在父页面上,不在弹出页面中。

答案 2 :(得分:0)

否则,在选定的索引更改后,在服务器端设置一些属性

in the cs
protected string SelectedValue{
   get {
      return "whatever";
   }
}


protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
        GridViewRow row = GridView1.SelectedRow;
        //TextBox2.Text = row.Cells[1].Text;


        SelectedValue = row.Cells[1].Text
    }

in the js
$(document).ready(function(){
    var selectedValue= '<%=SelectedValue%>';
    window.opener.document.getElementById("TextBox4").value = selectedValue;

});

可能存在语法错误。希望这会有所帮助。