0

以下のコードは、フォーム内のテキストを受け入れてテーブルに挿入します。「データが追加されました」というメッセージを表示した後、テーブルに追加して同じページにリダイレクトしたかったのですが、問題はそれが取得されていることですターゲットページにリダイレクトされましたが、cmd.ExecuteQuery(); が原因であると推測する message.im は表示されません。応答を生成し、リダイレクトされています...

しかし、私はそれがメッセージを表示したい。どのような変更を行う必要がありますか。事前に感謝します

protected void Button2_Click(object sender, EventArgs e)
{

    string v = System.Configuration.ConfigurationManager.ConnectionStrings["harish"].ConnectionString;
    con = new OracleConnection(v);
    con.Open(); 
    string query="insert into leave_module1 values(:name,:desig,:srno,:tol,:compdates,:fd,:td,:nod,:remarks)";
    OracleCommand cmd = new OracleCommand(query, con);
    //OracleCommand.BindByName = true;
    try
    {
        cmd.Parameters.Add(":name", OracleType.VarChar, 50).Value = DropDownList2.Text;
        cmd.Parameters.Add(":desig", OracleType.VarChar, 30).Value = TextBox10.Text;
        cmd.Parameters.Add(":srno", OracleType.Number, 8).Value = TextBox8.Text;
        cmd.Parameters.Add(":tol", OracleType.VarChar, 10).Value = DropDownList1.Text;
        cmd.Parameters.Add(":compdates", OracleType.VarChar, 30).Value = TextBox9.Text;
        cmd.Parameters.Add(":fd", OracleType.DateTime).Value = TextBox3.Text;
        cmd.Parameters.Add(":td", OracleType.DateTime).Value = TextBox4.Text;
        cmd.Parameters.Add(":nod", OracleType.Number, 3).Value = TextBox5.Text;
        cmd.Parameters.Add(":remarks", OracleType.VarChar, 50).Value = TextBox7.Text;
        cmd.ExecuteNonQuery();
        ClientScript.RegisterStartupScript(Page.GetType(), "validation",
         "<script language='javascript'>alert('The Data has been added')</script>");
        Response.Redirect("Default2.aspx");


    }
    catch
    {

        Label13.Visible = true;           

    }

    con.Close();    

}
4

5 に答える 5

2

これは、コードが JS スクリプトを開始ページ (たとえば、Default1.aspx としましょう) に追加してからDefault2.aspx、JS コードを含まないページにリダイレクトするために発生します。

Default2.aspxメッセージを表示するページにパラメーターを (おそらく QueryString を使用して) 渡すことをお勧めします。

Alertを使用してメッセージを表示することはお勧めしません。ページで div を使用するか、JQuery プラグインを使用してメッセージを表示することをお勧めします

http://jqueryui.com/demos/dialog/

于 2012-06-08T13:59:01.930 に答える
0

以下をjavascriptに変更してみてください。

ClientScript.RegisterStartupScript(Page.GetType(), "validation",  
     "<script language='javascript'>alert('The Data has been added')</script>");  

これに

ClientScript.RegisterStartupScript(Page.GetType(), "validation",  
     "<script language='javascript'>alert('The Data has been added');window.location="Default2.aspx" </script>");  

コードで次を削除します

Response.Redirect("Default2.aspx"); 
于 2012-06-08T14:01:15.247 に答える
0

そのページでユーザーにメッセージを表示したい場合は、すぐにリダイレクトするのではなく、データを挿入した後にそのページを表示できるようにする必要があります。Server-Side Response.Redirect を使用する代わりに、Javascript (クライアント側コード) を使用して数秒後にリダイレクトする必要があります。遅延はsetTimeout()Javascript を使用して達成されます。

これを行うために必要な JavaScript については、こちらこちらで説明しています。

于 2012-06-08T14:01:55.097 に答える
0

JavaScript の代わりに Session オブジェクトを使用して、同様のことを行いました。多分その考えはあなたを助けるでしょう。

マスターページにメッセージ変数を作成しましたが、あなたのような場合は

  • 必要なテキストでメッセージ変数を設定します
  • 目的の aspx ページにリダイレクトします
  • マスター ページは、表示するメッセージがあるかどうかを確認します。はいの場合、パネルが表示され、変数がリセットされます

あなたの場合、パネルに [OK] または [CLOSE] ボタンを配置するか、Ajax Control Toolkit の他のオブジェクトを使用できます。

于 2012-06-08T14:09:57.813 に答える
0

Response.Redirect を使用しないでください。

JavaScriptを使用してください:

ClientScript.RegisterStartupScript(Page.GetType(), "validation", 
     "<script language='javascript'>alert('The Data has been added'); window.location='default2.aspx';</script>");         
于 2012-06-08T14:02:15.577 に答える