2011-02-14 88 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