Передача параметров из ListView в JavaScript

4G
Дата: 15.04.2010 10:52:50
В ListView, в одной из колонок есть кнопка ImageButton с обработчиком OnClientClick. По нажатию на кнопку, в JavaScript функцию передаётся текстовое значение - содержимое ещё одной колонки этого же ListView. Вызов выполняю так:

OnClientClick='<%# string.Format("func({0});return false;", Eval("org_name")) %>'

Проблема в том, что если org_name представляет собой число, всё передаётся и принимается JavaScript-функцией замечательно, если идёт текст, то не работает, ошибки нет, но и значение не передаётся. Что можно сделать?
зы
Дата: 15.04.2010 11:38:51
текст нужно передавать в кавычках
Zoria
Дата: 15.04.2010 12:04:41
зы
текст нужно передавать в кавычках

если бы вы еще на примере автора показали как их туда "подсунуть" - цены бы ответу не было ;)
Зритель с попкорном 5
Дата: 15.04.2010 12:22:51
Zoria
зы
текст нужно передавать в кавычках

если бы вы еще на примере автора показали как их туда "подсунуть" - цены бы ответу не было ;)


Как нибудь так?

OnClientClick='<%# string.Format("func(\x27{0}\x27);return false;", Eval("org_name")) %>'
4G
Дата: 15.04.2010 12:31:27
Zoria
зы
текст нужно передавать в кавычках

если бы вы еще на примере автора показали как их туда "подсунуть" - цены бы ответу не было ;)


Совершенно верно. Я в курсе про кавычки, но к сожалению, все мои попытки экранировать передаваемое значение, приводят к выдаче сообщения о синтаксической ошибке.


Зритель с попкорном 5


Как нибудь так?

OnClientClick='<%# string.Format("func(\x27{0}\x27);return false;", Eval("org_name")) %>'


К сожалению не работает. Так и числовые значения не передаются.
Zoria
Дата: 15.04.2010 12:38:23
4G,

я видела но не пробовала такую форму записи:

OnClientClick='<%# Eval("org_name", string.Format("func(\"{0}\");return false;") %>'

сама же подписывалась на событие itemDataBound и присваивала в обработчике
myBtn.OnClientClick = string.Format....
Зритель с попкорном 5
Дата: 15.04.2010 12:40:16
4G,

гм, я правда пробовал такое не на ListView а на Repeater, но в общем странно. Не могли бы Вы предоставить результат рендеринга OnClientClick в вашем случае (конечный аттрибут onclick)?

Пока могу предложить только очередной очевидный вариант
OnClientClick='<%# string.Format("func(\"{0}\");return false;", Eval("org_name")) %>'
Zoria
Дата: 15.04.2010 12:45:36
Зритель с попкорном 5,

ваш вариант не рендерится по-моему.
4G
Дата: 15.04.2010 12:58:06
Zoria
4G,

я видела но не пробовала такую форму записи:

OnClientClick='<%# Eval("org_name", string.Format("func(\"{0}\");return false;") %>'



Не проходит. Выдаёт сообщение:

Сообщение об ошибке компилятора: BC30516: Сбой при разрешении перегрузки, так как данное число аргументов не подходит ни одному из доступных 'Eval'.


Zoria

сама же подписывалась на событие itemDataBound и присваивала в обработчике
myBtn.OnClientClick = string.Format....


Можно чуть подробнее. Что всё-таки написать в строке форматирования?


Зритель с попкорном 5
4G,
Не могли бы Вы предоставить результат рендеринга OnClientClick в вашем случае (конечный аттрибут onclick)?


Это то, что получается после рендеринга, у меня:

<input type="image" name="ListViewZ$ctrl16$SelectButton" id="ListViewZ_ctrl16_SelectButton" title="Выбрать" src="images/apply.png" alt="Выбрать" onclick="func(абвгд);return false;" style="height:24px;width:24px;border-width:0px;"/>
4G
Дата: 15.04.2010 13:05:30
Зритель с попкорном 5
4G,
Пока могу предложить только очередной очевидный вариант
OnClientClick='<%# string.Format("func(\"{0}\");return false;", Eval("org_name")) %>'


А на данный вариант выдаётся следующее сообщение:

Сообщение об ошибке компилятора: BC30518: Сбой при разрешении перегрузки, так как ни один из доступных 'Format' не может быть вызван с данными аргументами: