2012-04-05 75 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; 

}); 

可能有語法錯誤。希望這可以幫助。

相關問題