2011-02-14 80 views
1

EDIT1:如何在Javascript ESCAPE “逗号”

btnDelete.Attributes.Add("onclick", String.Format(@"return DeleteRow('{0}',{1},{2},{3});", e.Row.ClientID, e.Row.RowIndex, DataBinder.Eval(e.Row.DataItem, "Id"), "'" + DataBinder.Eval(e.Row.DataItem, "Name") + "'")); 

编辑:

我得到这个错误:

消息:未终止的字符串常量

我是传递来自代码后面的值和我的一些文本有一些这样的:

Foo3, In.c

//javascript 
    function DeleteRow(rowId, rowIdx, Id, Name) {   
     var textForMessage = "return confirm('Are you sure you want to delete this record with the name: \n{0} \n{1}');"; 
     //removed code... 
     return result; 
    } 
+2

你的代码看起来很奇怪。您可以定义不使用的参数。你初始化一个你不使用的局部变量。并且你返回一个你还没有定义的变量......如果你有的文本是'Foo3,In.c`,那么这个值通过了哪里?即使它作为参数之一传递,你也没有对它们做任何事情......请提供一个更完整/正确/无论什么样的例子。 – 2011-02-14 21:50:31

+0

我删除了一些可读性的代码 – 2011-02-14 22:00:56

+1

但您也删除了任何有关实际问题的说明。请发布完整的代码来说明问题,而不仅仅是您认为*表示您遇到的任何问题的部分。换句话说,请提供一个工作示例。 – user113716 2011-02-14 22:04:02

回答

10

什么也不做。逗号在JavaScript字符串中没有特殊含义。

2

您不需要转义逗号。您应环绕整个字符串引号:

'Foo3, In.c' 

如果这个字符串是另一个字符串,这也是单引号,你可能需要逃避引号内。

0

如果错误是客户端,你可以通过具有解决它:

btnDelete.Attributes["onclick"] = String.Format("return DeleteRow('{0}', '{1}', '{2}', '{3}');", e.Row.ClientID, e.Row.RowIndex, DataBinder.Eval(e.Row.DataItem, "Id"), DataBinder.Eval(e.Row.DataItem, "Name").ToString().Replace("'", "\'")); 

如果它是服务器端,请发布完整的错误消息,加上堆栈跟踪。

0

\x2c

在阿贾克斯有用。

function myfunction(id, str_URL) { 
    $.ajax({ 
     type: "GET", 
     url: str_URL, 
     success: function(t) { 
      var link = "<a href=\x22JavaScript:MyJava(\x22Param1\x22\x2c\x22Param2\x22)\x22>Link text</a>"; 
     } 

    }); 
} 

\x22"(报价)

在ASCII表只需引用六角柱。

http://www.asciitable.com/index/asciifull.gif