2008-08-05 68 views
30

如何在定位OnClick事件中分隔Javascript數據綁定字符串參數?三重引號?如何在ASP.NET中分隔數據綁定Javascript字符串參數?

  • 我在ASP.NET Repeater控件中有一個錨標籤。
  • 該錨點的OnClick事件包含對Javascript函數的調用。
  • Javascript函數爲其輸入參數採用一個字符串。
  • 字符串參數由來自Repeater的數據綁定值填充。

我需要「雙引號」爲Container.DataItem
我需要'單引號'爲OnClick

對於Javascript函數調用的輸入字符串參數,我仍然需要多一個分隔符(三引號?)。

因爲我不能再次使用'單引號',我如何確保Javascript函數知道輸入參數是一個字符串而不是一個整數?

如果在輸入字符串參數周圍沒有多餘的引號,那麼Javascript函數會認爲我傳入了一個整數。

提前喝下任何知識,你可以放棄。

錨:

<a id="aShowHide" onclick='ToggleDisplay(<%# DataBinder.Eval(Container.DataItem, "JobCode") %>);' >Show/Hide</a>  

這裏是JavaScript:

<script language="JavaScript" type="text/javascript"> 
/* Shows/Hides the Jobs Div */ 
function ToggleDisplay(jobCode) 
{ 
    /* Each div has its ID set dynamically ('d' plus the JobCode) */ 
    var elem = document.getElementById('d' + jobCode); 

    if (elem) 
    { 
     if (elem.style.display != 'block') 
     { 
      elem.style.display = 'block'; 
      elem.style.visibility = 'visible'; 
     } 
     else 
     { 
      elem.style.display = 'none'; 
      elem.style.visibility = 'hidden'; 
     } 
    } 
} 
</script> 

回答

20

我最近遇到了類似的問題,解決這個問題的唯一方法就是使用簡單的舊HTML代碼(&#39;)和雙引號(&#34;)。

源代碼當然是一團糟,但它的工作。

嘗試

<a id="aShowHide" onclick='ToggleDisplay(&#34;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#34;);'>Show/Hide</a> 

<a id="aShowHide" onclick='ToggleDisplay(&#39;<%# DataBinder.Eval(Container.DataItem, "JobCode") %>&#39;);'>Show/Hide</a> 
+0

Winna !!! 感謝Lubos。 HTML代碼對它進行了排序(而且,這很雜亂,但它的工作原理)。 解決方案: onclick ='ToggleDisplay(" <%#DataBinder.Eval(Container.DataItem,「JOB_Code」)%> ");' – Dhaust 2010-02-08 03:50:23

0

沒有圍繞輸入字符串參數額外的引號,Javascript函數認爲我傳遞一個整數。

你可以做一些基本的字符串函數來強制JavaScript將其更改爲一個字符串嗎?像

value = value + "" 
0

嘗試將額外的文本放入服務器端腳本塊並連接。

onclick='<%# "ToggleDisplay(""" & DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>' 

編輯:我敢肯定,你可以在腳本塊外使用雙引號。

0

傳遞變量,而不單引號或雙引號

<html> 
    <head> 
    </head> 
    <body> 
     <script language="javascript"> 
     function hello(id, bu) 
     { 
      alert(id+ bu); 
     } 
     </script> 
     <a href ="javascript: 
      var x = &#34;12&#34;; 
      var y = &#34;fmo&#34;; 
      hello(x,y)">test</a> 
    </body> 
</html> 
3
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); ' 

使用像上面的功能。

相關問題