我有一个父页面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);
}
这些值未转移。 请帮忙
答案 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;
});
可能存在语法错误。希望这会有所帮助。