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();"); 
}

有人请帮我解决这个问题。我正在使用带有 c# 的 asp.net。谢谢。

4

3 回答 3

1

您可以在父窗口中创建一个通过 ajax 加载 Dropdown 的函数。

从弹出窗口调用该函数:

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

在父窗口中创建一个名为“reloadDropDown”的函数并编写代码以使用 ajax 重新加载值...

希望能帮助到你。

如果您对我的回答有任何问题,请发表评论。

于 2013-06-12T07:17:20.390 回答
0

为什么不添加下拉列表,UpdatePanel当您单击“关闭”按钮时,仅用于 __doPostBack()更新 UpdatePanel 而不是整个页面。

在javascript中编写以下代码onclick关闭按钮-

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

ASP.NET AJAX 框架将拦截回发并在此处触发部分回发。

虽然直接调用 __doPostBack() 是一种不好的做法,但它可以为您提供服务。

于 2013-06-12T06:51:20.583 回答
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>
于 2013-06-12T06:16:28.093 回答