[英]Not showing message box in asp.net c# using Page.ClientScript.RegisterStartupScript()
我正在使用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()));
}
}
当字符串包含单引号时,由于单引号还用于包装传递给alert()
的值,因此它将破坏脚本。
为了克服这个问题,请不要使用引号:
Page.ClientScript.RegisterStartupScript(this.GetType(), "Error1",
string.Format("<script type='text/javascript'>alert('{0}')</script>",
Result.Replace("'", "\\'")));
上面的解决方案对我不起作用,但是我的情况略有不同。
这工作正常:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.