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

Как разграничить строковый параметр с привязкой к данным Javascript в якорном OnClick
событии?
- У меня есть тег привязки в элементе управления ASP . NET Repeater.
- Событие
OnClick
якоря содержит вызов функции Javascript. - Функция Javascript принимает строку в качестве входного параметра.
- Строковый параметр заполняется значением с привязкой к данным из повторителя.
Мне нужны "двойные кавычки" для файла 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>
5 ответов
Недавно у меня была аналогичная проблема, и единственный способ решить ее — использовать простые старые HTML-коды для одинарных (') и двойных кавычек (").
Исходный код, конечно, был полным беспорядком, но он работал.
Попробуй
<a id="aShowHide" onclick='ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode") %>");'>Show/Hide</a>
или
<a id="aShowHide" onclick='ToggleDisplay('<%# DataBinder.Eval(Container.DataItem, "JobCode") %>');'>Show/Hide</a>
Винна!!! Спасибо Любош. Коды HTML отсортировали его (и да, это было грязно, но это работает). Решение: onclick='ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JOB_Code") %>");'
" двойная кавычка. ' одинарная кавычка
onclick='javascript:ToggleDisplay("<%# DataBinder.Eval(Container.DataItem, "JobCode")%> "); '
Используйте, как указано выше.
Без дополнительных кавычек вокруг параметра входной строки функция Javascript считает, что я передаю целое число.
Можете ли вы сделать какую-нибудь элементарную строковую функцию, чтобы заставить JavaScript преобразовать ее в строку? Нравиться
value = value + ""
Попробуйте поместить дополнительный текст в блок сценария на стороне сервера и соединить его.
onclick='<%# "ToggleDisplay(""" & DataBinder.Eval(Container.DataItem, "JobCode") & """);" %>'
Изменить: я почти уверен, что вы могли бы просто использовать двойные кавычки вне блока сценария.
Передача переменной в функцию без одинарной или двойной кавычки
<html>
<head>
</head>
<body>
<script language="javascript">
function hello(id, bu)
{
alert(id+ bu);
}
</script>
<a href ="javascript:
var x = "12";
var y = "fmo";
hello(x,y)">test</a>
</body>
</html>
Document.getElementById()
Объект Element, описывающий объект элемента DOM, соответствующий указанному идентификатору, или null, если в документе не найден соответствующий элемент.
Синтаксис
getElementById(id)
Параметры
- id
-
Идентификатор элемента, который необходимо найти. Идентификатор — это чувствительная к регистру строка, которая уникальна в пределах документа; только один элемент может иметь любой заданный идентификатор.
Описание
Метод документа getElementById() возвращает объект Element, представляющий элемент, свойство id которого соответствует указанной строке. Поскольку идентификаторы элементов должны быть уникальными, если они указаны, они являются полезным способом быстрого доступа к определенному элементу.
Если вам нужно получить доступ к элементу, у которого нет идентификатора, вы можете использовать querySelector(), чтобы найти элемент с помощью любого селектора.
Метод DataBinder.Eval
Использует отражение для анализа и оценки выражения привязки данных к объекту во время выполнения.
Перегрузки
- Eval(Object, String)
-
Оценивает выражения привязки данных во время выполнения.
- Eval(Object, String, String)
-
Оценивает выражения привязки данных во время выполнения и форматирует результат в виде строки.
Синтаксис (Eval(Object, String))
Оценивает выражения привязки данных во время выполнения.
C#
public static object Eval (object container, string expression);
Параметры
- container
-
Object. Ссылка на объект, по которому оценивается выражение. Это должен быть действительный идентификатор объекта на указанном языке страницы.
- expression
-
String. Путь навигации от объекта-контейнера к значению общедоступного свойства, которое будет помещено в свойство связанного элемента управления. Это должна быть строка имен свойств или полей, разделенных точками, например Tables[0].DefaultView.[0].Price в C# или Tables(0).DefaultView.(0).Price в Visual Basic.
Описание
Значение параметра выражения должно оцениваться как общедоступное свойство.
Этот метод вызывается автоматически при создании привязок данных в конструкторе быстрой разработки приложений (RAD), таком как Visual Studio. Вы также можете использовать его декларативно, чтобы упростить преобразование в текстовую строку. Для этого используется синтаксис выражения <%# %>, используемый в стандартной привязке данных ASP . NET.
Этот метод особенно полезен при привязке данных к элементам управления, которые находятся в шаблонном списке.
Eval(Object, String, String)
Оценивает выражения привязки данных во время выполнения и форматирует результат в виде строки.
C#
public static string Eval (object container, string expression, string format);
Параметры
- container
-
Object. Ссылка на объект, по которому оценивается выражение. Это должен быть действительный идентификатор объекта на указанном языке страницы.
- expression
-
String. Путь навигации от объекта-контейнера к значению общедоступного свойства, которое будет помещено в свойство связанного элемента управления. Это должна быть строка имен свойств или полей, разделенных точками, например Tables[0].DefaultView.[0].Price в C# или Tables(0).DefaultView.(0).Price в Visual Basic.
- format
-
String. Строка формата .NET Framework (например, используемая Format(String, Object)), которая преобразует экземпляр Object, возвращаемый выражением привязки данных, в объект String.
Описание
Значение выражения должно оцениваться как общедоступное свойство.
Дополнительные сведения о строках формата в .NET Framework см. в разделе Типы форматирования.
Этот метод вызывается автоматически при создании привязок данных в конструкторе быстрой разработки приложений (RAD), таком как Visual Studio. Вы также можете использовать его декларативно для преобразования объекта, полученного в результате выражения привязки данных, в строку. Чтобы использовать метод декларативно, используйте синтаксис выражения <%# %>, который используется в стандартной привязке данных ASP . NET.
Этот метод особенно полезен при привязке данных к элементам управления, которые находятся в шаблонном списке.
Пользовательская проверка ASP . NET на стороне клиента
У меня есть настраиваемая функция проверки в JavaScript в пользовательском элементе управления на веб-сайте .Net 2.0, которая проверяет, не превышает ли уплаченная сумма причитающейся суммы. Я поместил код валидатора в ascx файл, а также попытался использовать его, Page.ClientScript.RegisterClientScriptBlock() и в обоих случаях проверка срабатывает, но я не могу найти функцию JavaScript. Вывод в консоли ошибок Firefox: "feeAmountCheck is not defined" . Вот функция (это было взято непосредственно из исходного кода firefox -> view) <script type="text/javascript"> function feeAmountCheck(source, arguments) { var amountDue = document.getElementById('ctl00_footerContentHolder_Fees1_FeeDue'); var amountPaid = document.getElementById('ctl00_footerContentHolder_Fees1_FeePaid'); if (amountDue.value > 0 && amountDue >= amountPaid)…
Multiply (Умножение) | JavaScript (решено) | codewars
Этот код не выполняется должным образом. Попытайтесь понять, почему. Решение function multiply(a, b) { return a * b; } Умножение Умножение целых чисел можно рассматривать как многократное сложение; то есть умножение двух чисел эквивалентно прибавлению количества копий одного из них, множимого, к количеству другого, множителя. Оба числа можно назвать факторами. Пример: 3 * 4 = 4 + 4 + 4 = 12 return Оператор return завершает выполнение функции и указывает значение, которое должно быть возвращено вызывающей функции. Синтаксис return [выражение]; Параметры выражение Выражение, значение которого должно быть возвращено. Если он опущен, вместо…
Как определить, какой из шрифтов использовался на веб-странице?
Предположим, у меня есть следующее правило CSS на моей странице: body { font-family: Calibri, Trebuchet MS, Helvetica, sans-serif; } Как я могу определить, какой из определенных шрифтов использовался в браузере пользователя? Для людей, которым интересно, почему я хочу это сделать, потому что шрифт, который я обнаруживаю, содержит глифы, недоступные в других шрифтах. Если у пользователя нет шрифта , я хочу, чтобы он отображал ссылку, предлагающую пользователю загрузить этот…