如何重定向到另一个页面

时间:2012-02-24 08:01:03

标签: c# asp.net sql

我有8个文本框,要求用户填写其中的数据,在确认后,他们会点击提交数据并将其保存在数据库中。这个过程工作得很好但我不知道如何将用户重定向到下一页让他们告诉他们“记录是成功添加的”。在这里,我粘贴代码片段。希望你们能帮助我。谢谢。

protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings       ["Connection"].ConnectionString);
    SqlCommand cmd = new SqlCommand("Insert into......");
cmd.CommandType = CommandType.Text;
cmd.Parameters.AddWithValue("@name", Membership.GetUser().UserName);
cmd.Parameters.AddWithValue("@bulan", Label1.Text);
cmd.Parameters.AddWithValue("@ex1s", Label18.Text);
cmd.Parameters.AddWithValue("@p1s", Label20.Text);
cmd.Parameters.AddWithValue("@ex2s", Label2.Text);
cmd.Parameters.AddWithValue("@p2s", Label21.Text);
cmd.Parameters.AddWithValue("@ex3s", Label3.Text); 
cmd.Parameters.AddWithValue("@p3s", Label22.Text); 
cmd.Parameters.AddWithValue("@ex4s", Label4.Text);
cmd.Parameters.AddWithValue("@p4s", Label23.Text);
cmd.Parameters.AddWithValue("@ex5s", Label5.Text);
cmd.Parameters.AddWithValue("@p5s", Label24.Text);
cmd.Parameters.AddWithValue("@ex6s", Label6.Text);
cmd.Parameters.AddWithValue("@p6s", Label25.Text);
cmd.Parameters.AddWithValue("@ex7s", Label7.Text);
cmd.Parameters.AddWithValue("@p7s", Label26.Text);
cmd.Parameters.AddWithValue("@ex8s", Label8.Text);     
cmd.Parameters.AddWithValue("@p8s", Label27.Text);
cmd.Parameters.AddWithValue("@totals", Label28.Text);
conn.Open();
cmd.ExecuteNonQuery();

5 个答案:

答案 0 :(得分:3)

Response.Redirect("nextPage.aspx");

答案 1 :(得分:1)

您有几个选择。按优先顺序排列:

  1. 修改添加记录的页面的输出,以显示成功消息
  2. 使用Server.Transfer()
  3. 进行服务器端重定向
  4. 使用Response.Redirect()
  5. 发出HTTP重定向

答案 2 :(得分:1)

我将完成它:

[...]
conn.Close();
Response.Redirect("~/NewPage.aspx?msg=complete");

将完成您的代码(关闭连接很重要) Response.Redirect将用户发送到方法参数中的页面。

在NewPage.aspx.cs上的

然后我将捕获url参数:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        if(Request.QueryString["msg"] != null)
        {
            litMsg.Text = "<div id='msgTxt' style='display:none;background-color:red;'>" + Request.QueryString["msg"] + "</div>";
        }
    }
}

其中litMsg是页面上的文字控件。为了加强它,我在NewPage.aspx上使用了一些JQuery

<asp:Literal ID="litMsg" Text="" runat="server" />
<script type="text/javascript">
    try {
        $("#msgTxt").fadeIn("slow");
    } catch (e) {
    //it's probably not there
    }
</script>

更有意义吗? :)

答案 3 :(得分:1)

也许你可以使用if ... else ...... 例如:

  int rowsAffected = cmd.ExecuteNonQuery();
        if (rowsAffected == 1)
        {
            //Success notification 
        }
        else
        {
            //Error notification 
        }
    }

答案 4 :(得分:0)

方法1

你可以有一个隐藏的面板,然后按钮可以显示面板,并设置面板的文本。

这绝对有用。

方法2

不同的方法是HTML方式。您可以触发以下内容:

Response.Redirect("MyPage.aspx?message=Records are successfully added");

然后在ASPX文件中处理:

<p>
<%= Request["message"] %>
</p>