2012-04-05 76 views
0

我有一个父页面inner4.aspx和一个弹出页面popupemail.aspx。现在发生了什么是我提取弹出窗口中的电子邮件ID并显示在GridView中,当用户选择一个电子邮件ID时,它会通过JavaScript函数传递给父页面。将弹出页面的值传递到父页面

CODE父:

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

CODE为弹出的:

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

你可以只写一个简单的警报,看看功能是否也运行也基于你设置ID的方式确保你有客户端模式静态 – 2012-04-05 06:06:47

回答

0

您可以通过使用JavaScript使用

window.opener.document.getElementById("TextBox4").value = txt; 

调用父页面,也可以通过uisng同样

window.opener.setText(); 

的setText()函数写在父调用父页面功能页面不在弹出页面。

1

复制修改后的行代码

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

它没有工作。我应该从updatepanel中删除gridview? – 2012-04-05 06:24:29

+0

删除更新面板仍然没有来临 – 2012-04-05 06:26:50

+0

你可以通过添加调试器来尝试;并以调试模式(F5)运行项目,例如ScriptManager.RegisterStartupScript(this,GetType(),“settxt”,“debugger; window.opener.setText1('”+ row.Cells [1] .Text +'');“,true);并检查光标是否停在调试器上;如果它没有停止,那就意味着你的整个脚本不会被调用 – 2012-04-05 06:51:00

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; 

}); 

可能有语法错误。希望这可以帮助。

相关问题