【发布时间】:2015-03-23 21:17:56
【问题描述】:
我要做的就是在布尔“结果”为假时弹出一个 javascript 警报。
当 'result' 为真时,javascript 警报弹出成功。但是,当它为 false 时,警报根本不会显示。
每个警报的用法的唯一区别是不成功的警报使用字符串变量,而成功的警报使用 CONST 字符串。
是否有关于 javascript 警报的规则只允许警报消息使用 const 字符串?
这是我的代码:
var sql = new SqlClass();
var result = sql.DataInsert(Label1.Text);
if (result == false)
{
cancelButton_Click(this, e);
string msg = LotInfo.SubmitError; //this is just a static string
string script = string.Format("alert('{0}');", msg);
ScriptManager.RegisterStartupScript(this, typeof(string), "Error", script, true);
}
else
{
cancelButton_Click(this, e);
const string msg = "Data successfully submitted!";
string script = string.Format("alert('{0}');", msg);
ScriptManager.RegisterStartupScript(this, typeof(string), "Success", script, true);
}
我想补充一点,LotInfo.SubmitError 确实包含一个包含 SqlException 消息的字符串。当我将该字符串存储到 Label.Text 中时,该标签确实会显示在我的页面上。
提前致谢。
编辑: LotInfo.SubmitError 的实际值是一条 SQL 错误消息,所以它真的取决于我得到的错误。
【问题讨论】:
-
可能是
LotInfo.SubmitError中有引号会终止字符串并使生成的javascript不正确。 -
改用
ScriptManager.RegisterStartupScript(this, typeof(string), "InsertError", script, true);。已经有一个名为Error的 JavaScript 对象可能与您的脚本冲突 -
你能告诉我们
LotInfo.SubmitError的实际值吗?它是否包含任何撇号? -
也作为一种风格注释:你应该尝试用更少的重复行编写你的代码...
-
string script = string.Format("alert('{0}');", msg.Replace("'", "\'");试试看
标签: javascript c# asp.net