Вопрос

У меня есть база данных, в которой хранятся события, и страница с объектом календаря.При рендеринге дней он просматривает события месяцев и, если какие-либо из них соответствуют отображаемому текущему дню, создает кнопку ссылки, представляющую событие в этот день в календаре, и добавляет его в эту ячейку.Я добавляю Javascript к кнопке ссылки, чтобы изменить window.location на страницу для просмотра подробностей о событии, передавая EventID в строке запроса (я пытался установить postbackurl для вновь созданной кнопки ссылки, но это не вызывало обратной передачи...не повезло).Мне нужно установить переменную сеанса, т.е.Session("EditMode") = "Edit" То есть новая страница будет знать, что ей нужно получить информацию о существующем событии, а не готовиться к созданию нового события?Какие-либо предложения?

Это было полезно?

Решение

Ваши сеанса управляются сервером, JS запускает сторону клиента, и поэтому не может изменить VARS напрямую.

Вам необходимо сделать запросы на сервер, используя post или get и hidden iframes, или xmlhttprequest () вызовы для отправки данных с JS на сервер, а затем обрабатывать код вашего сервера.

Добавьте еще одну переменную строки запроса, которую страница может использовать для переключения между существующими и новыми.

Другие советы

Добавьте еще одну переменную строки запроса, которую страница может использовать для переключения между существующими и новыми.

Если вы используете что-то вроде Struts2, вы можете иметь скрытую переменную в своем jsp.

<s:hidden id="EditModeId" value="%{#session.EditMode}"/> 

И внутри javascript просто получите доступ к этой переменной

alert(document.getElementById('EditModeId').value);

Вам обязательно нужно добавить переменную на целевую страницу.Но я так понимаю, что вы выполняете сценарий всплывающего окна, поэтому у вас должна быть возможность создать javascript-функцию OpenWindow() и запускать ее, когда пользователь нажимает ссылку.

<script>
function OpenWindow(eventId, editMode)
{
    var window = window.open("popup.aspx?eventId=" + eventId + "&editMode=" + editMode);
}
</script>

На стороне сервера вам нужно построить вызов функции OpenWindow.Например:

onclick="OpenWindow(eventId=" + row["eventId"].ToString() + "&editMode=" + editMode.ToString() + ");"

Другими словами, подготовьте все на стороне сервера, чтобы настроить JavaScript для публикации всех переменных на новой странице.Надеюсь это поможет.

var page1 = document.getElementById("textbox").value; 
sessionStorage.setItem("page1content", page1);

на другой странице используйте это значение как переменную сеанса

document.getElementById("textbox2").value=sessionStorage.getItem("page1content");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top