0

私は Page.ClientScript.RegisterStartupScript(); を使用しています。asp.net C# でメッセージを表示するには

私がコードの下に書くと、その作業

 Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowMessage", string.Format("<script type='text/javascript'>alert('{0}')</script>", "Record Saved"));
 Page.ClientScript.RegisterStartupScript(this.GetType(), "Error", string.Format("<script type='text/javascript'>alert('{0}')</script>", ex.Message.ToString()));

でも書いたら

string Result = objChap.Insert();
Page.ClientScript.RegisterStartupScript(this.GetType(), "Error", string.Format("<script type='text/javascript'>alert('{0}')</script>", Result));

それが機能しないということは、メッセージボックスが表示されないことを意味します

私の完全なコードは

protected void btnSave_Click(object sender, EventArgs e)
    {
        try
        {
            objChap.FK_SemesterID = Convert.ToDecimal(drplstSem.SelectedValue);
            objChap.FK_SubjectID = Convert.ToDecimal(drplstSub.SelectedValue);
            objChap.ChapterName= txtChap.Text;
            objChap.ChapterSName = txtChapShortName.Text;
            objChap.Remarks = txtRemarks.Text;
            objChap.Dta_User = Global.Dta_User;
            objChap.Dta_Users = Global.Dta_User;


            string Result = objChap.Insert();
            if (Result == "1")
            {

                Page.ClientScript.RegisterStartupScript(this.GetType(), "ShowMessage", string.Format("<script type='text/javascript'>alert('{0}')</script>", "Record Saved"));

            }
            else
            {
                Page.ClientScript.RegisterStartupScript(this.GetType(), "Error1", string.Format("<script type='text/javascript'>alert('{0}')</script>", Result));



            }

        }
        catch (Exception ex)
        {
            Page.ClientScript.RegisterStartupScript(this.GetType(), "Error", string.Format("<script type='text/javascript'>alert('{0}')</script>", ex.Message.ToString()));
        }
    }
4

2 に答える 2

4

文字列に単一引用符が含まれている場合、単一引用符は に渡される値をラップするためにも使用されるため、スクリプトが壊れますalert()

これを克服するには、引用符をエスケープします。

Page.ClientScript.RegisterStartupScript(this.GetType(), "Error1", 
    string.Format("<script type='text/javascript'>alert('{0}')</script>", 
    Result.Replace("'", "\\'")));
于 2013-02-21T10:56:16.213 に答える
0

上記の解決策はうまくいきませんでしたが、私の状況は少し異なります。

これはうまくいきます:

Page.ClientScript.RegisterStartupScript(this.GetType(), "JSscript", "alert('this is a test');", true);

これはしません:

String MetaJS = Convert.ToString(aList["JavaScript"].Value); //alert('this is a test'); 
Page.ClientScript.RegisterStartupScript(this.GetType(), "MetaScript", MetaJS, true);

そして、これはしません:

String MetaJS = Convert.ToString(aList["JavaScript"].Value); //alert('this is a test'); 
Page.ClientScript.RegisterStartupScript(this.GetType(), "MetaScript", string.Format("{0}", MetaJS.Replace("'", "\\'")), true);
于 2014-07-31T16:17:30.063 に答える