2013-06-12 66 views
0

我有一個由我的數據庫和我的page1上的按鈕填充的下拉列表,現在當我單擊按鈕page2時將彈出包含1個文本框和2個按鈕,如果我在我的文本框中輸入一個值並點擊保存按鈕,它會保存在我的數據庫,當我點擊關閉按鈕,彈出將關閉,然後我想要的是我的page1下拉將重新加載(無需重新加載整個頁面),以獲得值,我在彈出窗口中輸入。這是我迄今爲止得到了:彈出窗口關閉後重新加載下拉列表

第1頁:

protected void Page_Load(object sender, EventArgs e) 
{ 

    Button1.Attributes.Add("onclick", "window.open('Entry.aspx','','height=200,width=650');return false"); 

} 

第2頁:

protected void btnSave_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     if (txtfname.Text == String.Empty) 
     { 
      lblname.Text = "First Name Required"; 
      lblname.Visible = true; 
     } 
     else if (txtlname.Text == String.Empty) 
     { 
      lbllname.Text = "Last name Required"; 
      lbllname.Visible = true; 
     } 
     else 
     { 
      SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True"); 
      SqlCommand cmd = new SqlCommand("insert", con); 
      cmd.CommandType = System.Data.CommandType.Text; 

      cmd.Parameters.AddWithValue("@Lname", txtlname.Text); 
      cmd.Parameters.AddWithValue("@Mname", txtmname.Text); 
      cmd.Parameters.AddWithValue("@Fname", txtfname.Text); 
      cmd.Parameters.AddWithValue("@checkbox1", CheckBox1.Checked); 

      cmd.CommandType = System.Data.CommandType.StoredProcedure; 
      con.Open(); 
      cmd.ExecuteNonQuery(); 
      MessageBox("successfully saved!"); 
      clear(); 
     } 
    } 
    catch (Exception exe) 
    { 
     throw exe; 
    } 
} 
protected void btnClose_Click(object sender, EventArgs e) 
{ 
    Response.Write("window.opener.location.reload();self.close();"); 
} 

有人好心幫我這。我正在使用asp.net與c#。謝謝。

回答

0

寫內部btnClose_Click

Response.Write("<script type='text/javascript'>;window.close();</script>"); 

,並添加下面的腳本Entry.aspx

<script type="text/javascript"> 
    window.onunload = refreshParent; 
    function refreshParent() { 
     var loc = window.opener.location; 
     window.opener.location = loc; 

    } 

</script> 
+0

你好,謝謝你的回覆,已經嘗試過你的代碼,但整個頁面仍然令人耳目一新,我正在嘗試的只是下拉菜單會重新加載。再次感謝 – user2388316

0

你爲什麼不以UpdatePanel添加您的下拉列表,當你點擊「關閉」按鈕即可使用__doPostBack()來更新UpdatePanel而不是整個頁面。

寫下面的代碼的onclick關閉按鈕在Javascript成爲

onclick="__doPostBack('UpdatePanel1', '');" 

ASP.NET AJAX框架會攔截回傳,並將在此處觸發一個局部回傳。

雖然直接調用__doPostBack()是一種糟糕的做法,但它可以爲您的pourpose服務。

1

您可以在父窗口中通過ajax加載下拉菜單中創建一個函數。

調用該函數從彈出:

window.onunload = reloadDropDown; 
function reloadDropDown() { 
    window.opener.reloadDropDown(); 
} 

創建父窗口命名爲「reloadDropDown」功能,並編寫代碼使用AJAX重新加載值...

希望它能幫助。

如果您有任何關於我的答案的問題,請提出意見。