2014-12-02 27 views
0

我最近發佈了詢問如何將數據綁定數據傳遞給javascript函數。在幫助下,我得到了我想要的結果;但是,之後我立即遇到了另一個問題。你如何獲得JavaScript的eval返回一個字符串,而不是一個變量?

<asp:ImageButton ID="ImageButton1" CommandArgument='<%# Eval("MECNUM") %>' runat="server" ImageUrl="printer.png" OnClick="Display_OnClick" 
       OnClientClick='<%# Eval("MECNUM", "Display_OnClientClick({0})") %>' /> 

可以說MECNUM是XYZ。不幸的是,它會拋出一個錯誤,稱XYZ是一個未定義的變量。我真正想要的是要傳遞的字符串「XYZ」。放置XYZ.toString()不起作用,因爲問題仍然是未定義的變量。有什麼想法嗎?

function Display_OnClientClick(mecnum) { 
     alert(mecnum); 
    } 

由於一噸的幫助

回答

2

您需要附上該到雙引號。喜歡這個。

'<%# Eval("MECNUM", "Display_OnClientClick(\"{0}\")") %>'

爲什麼你需要做到這一點?

如果你不這樣做,它會生成JavaScript這樣的 - Display_OnClientClick(XYZ)。 所以很明顯XYZ需要是JavaScript變量或更早定義爲JavaScript變量。爲了掩蓋這一點,你需要有Display_OnClientClick("XYZ")。在這裏它會說XYZ是一個字符串,並且會起作用。這是這裏唯一的原因。

如果你正面臨着引號逃逸(JS錯誤)問題,你可能是指本 - how to escape characters when using server side delimiters

+0

單引號:) – Fred 2014-12-02 15:37:47

+0

@Fred,更新的答案與雙引號逃逸。 – 2014-12-02 15:41:07

+1

謝謝!我現在知道了 – 2014-12-02 15:43:24

相關問題