提问人:magix 提问时间:1/24/2020 更新时间:1/24/2020 访问量:126
函数适用于双引号,但不适用于单引号
Function works with double quotes but not with single quotes
问:
我正在使用 Web 表单开发一个页面,但我的 aspx.cs 页面有问题。我有一个带有值的树视图,这些值应该用作 gridview(sqlServer 数据库)的过滤器。我将选中的节点保存在一个字符串中,并且代码在双引号下工作正常,但是当我使用单引号(我需要)时,当我运行它时没有任何反应。
这是我正在运行的代码。我使用 ClientScript 只是为了查看我保存的字符串。下面的代码不起作用,如果我将“替换为”,它可以工作,但我不能使用它来过滤sql表。我试过替换,试过使用字符分隔符,放两个单引号,似乎没有任何效果。有什么想法吗?
protected void Submit(object sender, EventArgs e)
{
string exp1 = string.Empty;
foreach (TreeNode node in Source_TreeView.CheckedNodes)
{
if (node.Checked)
{
if (exp1 != string.Empty)
{
exp1 += " OR ";
}
exp1 += "Source=" + "'" + node.Value + "'";
}
}
if (exp1 != string.Empty)
{
exp1 = "(" + exp1;
exp1 = exp1 + ")";
}
exp1 = exp1.Replace("'", "''");
string exp2 = string.Empty;
foreach (TreeNode node in Sink_TreeView.CheckedNodes)
{
if (node.Checked)
{
if (exp2 != string.Empty)
{
exp2 += " OR ";
}
exp2 += "Sink=" + "'" + node.Value + "'";
}
}
if (exp2 != string.Empty)
{
exp2 = "(" + exp2;
exp2 = exp2 + ")";
}
ClientScript.RegisterStartupScript(this.GetType(), "alert", "alert('" + exp1 + exp2 + "');", true);
}
答:
1赞
Stefano Martines
1/24/2020
#1
它不起作用,因为您的字符串 exp1 或 exp2 之一包含一个简单的引号。因此,当您使用 RegisterStartupScript 发送脚本时,可能会出现 Javascript 错误。检查控制台
尝试使用 \”
string yourScript = string.format("alert(\"{0} {1}\");", exp1, exp2)
ClientScript.RegisterStartupScript(this.GetType(), "alert", yourScript, true);
评论
exp1 = exp1.Replace("'", "''");
为什么需要这行代码?it didn't work
这是什么意思?