Member 12926744 Ответов: 2

Передача нескольких параметров eval в функцию javascript из ASPX


Всем Привет,
Я уже знаю, как это работает с одним параметром.Возможно ли это с двумя параметрами.

Что я уже пробовал:

OnClientClick='<%# Eval("psid", "window.open(\"add.aspx?cid={0}\", null,\"scrollbars=yes,top=10,left=10\", \"true\");") %>'


Один параметр-это значение текстового поля.Заранее спасибо

2 Ответов

Рейтинг:
8

F-ES Sitecore

Пропуск двух параметров, как

add.aspx?param1=123&param2=456


Однако если второй параметр должен быть значением текстового поля, то вам, вероятно, лучше использовать не OnClientClick, а чистый javascript на странице. Вам понадобится что-то вроде

<asp:TextBox ID="TextBox1" runat="server" />
<asp:Button runat="server" ID="btn" OnClientClick='<%# string.Format("window.open(\"add.aspx?cid={0}&param2=\" + document.getElementById(\"{1}\").value, null,\"scrollbars=yes,top=10,left=10\", \"true\");", Eval("psid"), Container.FindControl("TextBox1").ClientID) %>' Text="click"/>


Как вы находите текстовое поле, чтобы получить его идентификатор, зависит от того, где находится текстовое поле и что это за текстовое поле, но ни то, ни другое вы не сказали.


Suvendu Shekhar Giri

5ed! Имеет смысл.

Member 12926744

&ЛТ;АСП:текстовое поле с ID="txt_chq" CssClass="txtch" ширина="шириной 250 пикселей и следующий" атрибут runat="сервер"и GT;
Это мое поле текстового поля, которое нужно передать.
Однако я получаю ошибку "не содержит определения для FindControl" в приведенном выше коде.Не могли бы вы пожалуйста помочь мне.

F-ES Sitecore

Вы не дали коду достаточного контекста, решение зависит от того, на каком элементе находится атрибут OnClientClick, и если это привязка к базе данных и т. д., Ни один из которых вы не объяснили.

Member 12926744

Атрибут OnClientClick находится на imagebutton.
<asp:templatefield>
<itemtemplate>
&ЛТ;как ASP:ImageButton с ИД="ibut_Print" атрибут runat="сервер" цель="_blank" OnClientClick=в'<%# Ивала("фунт", "окна.открыть(\"добавить.аспн?УУР={0}\", значение null,\"полосы прокрутки=да,ТОП=10,левая=10\", \"правда\");") %&ГТ;'
AlternateText="просмотреть" CssClass="btn5" цвет="белый" подсказка="печать накладной" /&ГТ;

<ItemStyle HorizontalAlign="Center" Width="15px" />

F-ES Sitecore

Вы все еще не объяснили, где находится текстовое поле. Люди не могут дать решения вещей без правильных деталей. Где находятся элементы управления и как они связаны, имеет большое значение, и без соответствующей информации невозможно дать точные ответы.

Member 12926744

Ну вот и получил ответ.

&ЛТ;АСП:кнопка атрибут runat="сервер" идентификатор="БТН" OnClientClick=в'<%# строку.Формат (окно".открыть(\"добавить.аспн?УУР={0}¶м2=\" + документ.метода getElementById(\"{1}\").значение null,\"полосы прокрутки=да,ТОП=10,левая=10\", \"правда\");", функция eval("фунт"), форма.FindControl("txt_chqdate").ClientID) %>' />

Большое вам спасибо за вашу помощь.

Рейтинг:
14

Suvendu Shekhar Giri

Из вашего кода видно, что вы не совсем передаете значения какой-либо функции, поэтому я боюсь, что это невозможно, хотя я и не профессионал в Javascript.
Однако вы всегда можете передать столько параметров, сколько требуется функции, используя Eval.

В этом случае ваш код должен выглядеть примерно так-

OnClientClick='<%# "MyFunctionName(" +Eval("FirstParameter") + ","+Eval("SecondParameter")+" );" %>'


Похоже, что вы также хотите открыть новое окно, которое вы также можете написать внутри функции.

Пожалуйста, дайте мне знать, если что-то не ясно или если вам нужна дополнительная помощь.

Спасибо :)


Member 12926744

Спасибо за ваш ответ.Можем ли мы передать значение текстового поля в качестве параметра?Если да ,то не могли бы вы сказать мне, как это сделать?Хотя я не мог найти подходящего способа.

Suvendu Shekhar Giri

Вам нужно найти это с помощью document.getElementById().
Дайте мне знать, если потребуется дополнительная помощь.

Member 12926744

Большое спасибо.Получить ответ
&ЛТ;АСП:кнопка атрибут runat="сервер" идентификатор="БТН" OnClientClick=в'<%# строку.Формат (окно".открыть(\"добавить.аспн?УУР={0}¶м2=\" + документ.метода getElementById(\"{1}\").значение null,\"полосы прокрутки=да,ТОП=10,левая=10\", \"правда\");", функция eval("фунт"), форма.FindControl("txt_chqdate").ClientID) %>' />