0

我正在使用 Facebox jquery 框来加载一个带有提交按钮和取消按钮的小表单。

当我单击提交时,它会关闭加载 Facebox 窗口而不是 Facebox 窗口的主页!它使 AddNote.aspx 站点保持打开状态(由 Facebox 加载)并关闭我的 Main.aspx。

这是我在 AddNote.aspx 中的代码(由 Main.aspx 上的 Facebox 弹出窗口呈现):

    protected void SubmitButtom_Click(object sender, EventArgs e)
    {

        string note = NotesTextBox.Text;

        //will need to add current user

        using (cmd = new SqlCommand("INSERT INTO notes (FID, note_date, note_text) VALUES (@FID, @note_date, @note_text)", con))
        {
            con.Open();
            cmd.Parameters.Add(new SqlParameter("FID", FID));
            cmd.Parameters.Add(new SqlParameter("note_date", DateTime.Now.ToString()));
            cmd.Parameters.Add(new SqlParameter("note_text", note));
            cmd.ExecuteNonQuery();
            con.Close();
            Page.ClientScript.RegisterOnSubmitStatement(typeof(Page), "closeModal", "$.facebox.close();");              //WHY DOES THIS CLOSE MAIN.ASPX INSTEAD OF FACEBOX WINDOW?                  
        }           

    }
4

1 回答 1

0

欢迎使用 ASP.NET

您正在使用服务器端代码来处理此表单。这意味着您必须执行 ASP.NET 所称的“回发”。这意味着form页面上的 正在将数据提交回自身进行处理。由于“提交”按钮是触发它的按钮,因此您的处理程序会被调用。

这里重要的是,这需要访问服务器。表单正在提交,在普通 HTTP 中(因此在 ASP.NET 中,因为它是为 HTTP 处理构建的框架),意味着页面刷新。浏览器说“哦!正在提交表单!是时候向服务器发出请求,并等待响应。我现在可能可以卸载我拥有的页面了。” 确实如此。

为了做你想做的事,请查看“AJAX”或异步 XMLHttpRequest。它们是一样的,除了一个更流行。

于 2012-10-15T17:01:20.147 回答