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

голоса
30

Как разграничить параметр с привязкой к данным строкового Javascript в якорной OnClickслучае?

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

Мне нужно «двойные кавычки» для 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>
Задан 05/08/2008 в 05:05
источник пользователем
На других языках...                            


5 ответов

голоса
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>
Ответил 05/08/2008 d 05:28
источник пользователем

голоса
3
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '

Используйте как выше.

Ответил 28/04/2009 d 16:11
источник пользователем

голоса
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>
Ответил 12/03/2009 d 02:12
источник пользователем

голоса
0

Попробуйте положить дополнительный текст внутри блока сценария на стороне сервера и конкатенации.

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

Изменить: Я уверен, что вы могли бы просто использовать двойные кавычки вне блока сценария, а также.

Ответил 05/08/2008 d 05:19
источник пользователем

голоса
0

Без дополнительных кавычки вокруг параметра входной строки, функция Javascript думает, что я передаю в целом числе.

Вы можете сделать некоторые рудиментарные функции строки, чтобы заставить JavaScript в изменении его в строку? подобно

value = value + ""
Ответил 05/08/2008 d 05:08
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more