Помогите решить следующюю проблему.
Часть страницы являеться сгенерированным из xml html при помощи xsl, в сгенерированной области имееться кнопка, тоже сгенерированная, что необходимо сделать что бы можно было бы обрабатывать нажатие этой кнопки на сервере, и как это сделать?
Если есть вожможность дайте пример кода.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
если это <input type="submit" id="btnSbmt" name="btnSbmt"> то постбек на сервер будет в любом случае, а там уже можно попробовать определить инициатора постбека, не факт правда что получится.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Инициатор постбека это Request.Form["__EVENTTARGET"].
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Огромное спасибо, всё получилось
Request.Form["__EVENTTARGET"] оказался вершиной айсберга, для того что бы всё работало необходимо проделать дополнительные операции, если интересно то могу расказать.
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Здравствуйте, roger.sys, Вы писали:
RS>Огромное спасибо, всё получилось
RS>Request.Form["__EVENTTARGET"] оказался вершиной айсберга, для того что бы всё работало необходимо проделать дополнительные операции, если интересно то могу расказать.
Интересно, расскажите, пожалуйста!
Всё здесь основываеться на следующем.
ASP.Net генерирует в html страницы метод javaScript "__doPostBack" , если на странице присутствует эленет отправляющий страницу на сервер. В моём случае таких элементов не было и я этод метод добавлял через xsl:
<script type="text/javascript">
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
</script>
Далее необходимо добавить скрытые поля для хранения информации:
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
Теперь можно создать кнопку которая сможет отправлять событие с отрибутами на сервер:
<input id="{$VideoID_controlID}" type="button" value="test" onclick="javascript:__doPostBack('testEvent','{$VideoID_controlID}')" />
Всё это добавляеться в xsl.
Теперь при генерации html при помощи элемента <asp:xml> на странице отображеться необходимая нам кнопка.
Теперь на сервере в методе Load_Page при помоще Request.Form["__EVENTTARGET"] можно пределить событие и его атрибуты
данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение