2008-08-05 10 views
30

Как отключить параметр строки привязки Javascript в привязке OnClick?Тройные котировки? Как разграничить параметр строки Javascript в ASP.NET?

  • У меня есть привязка в элементе управления ASP.NET Repeater.
  • Событие анкера OnClick содержит вызов функции Javascript.
  • Функция Javascript берет строку для своего входного параметра.
  • Параметр string заполняется значением базы данных из ретранслятора.

Мне нужны «двойные кавычки» для 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")%> "); ' 

использования как выше.