Javascript 将值从弹出页面传输到父页面
我有一个父页面inner4.aspx和一个弹出页面popupemail.aspx。现在,我正在弹出窗口中提取电子邮件id,并显示在gridview中,当用户选择电子邮件id时,它会通过javascript函数传输到父页面 家长代码:Javascript 将值从弹出页面传输到父页面,javascript,asp.net,c#-4.0,Javascript,Asp.net,C# 4.0,我有一个父页面inner4.aspx和一个弹出页面popupemail.aspx。现在,我正在弹出窗口中提取电子邮件id,并显示在gridview中,当用户选择电子邮件id时,它会通过javascript函数传输到父页面 家长代码: function setText1(txt) { document.getElementById('TextBox4').value = txt; } 弹出窗口的代码: protected void GridView1_Se
function setText1(txt) {
document.getElementById('TextBox4').value = txt;
}
弹出窗口的代码:
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);
}
值不会被传输。
请帮助您可以使用javascript调用父页面
window.opener.document.getElementById("TextBox4").value = txt;
或者您也可以使用相同的方法调用父页面函数
window.opener.setText();
setText()函数写在父页面上,不在弹出页面中。将修改后的行复制到代码中
ScriptManager.RegisterStartupScript(this,GetType(), "settxt", "window.opener.setText1('"+ row.Cells[1].Text + "');", true);
否则,在所选索引更改后,请在服务器端设置一些属性
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;
});
cs中的
受保护的字符串SelectedValue{
得到{
返回“无论如何”;
}
}
受保护的void GridView1\u SelectedIndexChanged(对象发送方,事件参数e)
{
GridViewRow行=GridView1.SelectedRow;
//TextBox2.Text=row.Cells[1].Text;
SelectedValue=行。单元格[1]。文本
}
在js中
$(文档).ready(函数(){
var selectedValue='';
window.opener.document.getElementById(“TextBox4”).value=selectedValue;
});
可能有语法错误。希望这能有所帮助。你能写一个简单的警报,看看函数是否也在根据你设置id的方式运行,确保你有客户端模式,但它不起作用。我应该从updatepanel中删除gridview吗?你可以通过添加调试器来尝试吗;并在调试模式(F5)下运行项目,例如ScriptManager.RegisterStartupScript(这是GetType(),“settxt”,“debugger;window.opener.setText1(“+”行.Cells[1].Text+”;“,true));并检查光标是否在调试器处停止;如果不停止,则意味着不调用整个脚本