2008-09-24 5 views
2

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

+0

Какие события вы храните? А также, можете ли вы опубликовать код? – 2008-09-24 20:54:42

ответ

6

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

Вам нужно сделать запросы к серверу с помощью POST или GET и скрытых плавающих фреймов или XMLHTTPRequest() вызовов для передачи данных от JS для сервера, а затем ваш код на сторону сервера обработки ВАРА.

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

6

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

1

Вам определенно необходимо добавить переменную на целевую страницу. Но я полагаю, что вы делаете всплывающий сценарий, поэтому вы должны иметь возможность создавать 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() + ");" 

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

2

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

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

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

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

в других целях страницы этой значение как переменная сеанса

document.getElementById("textbox2").value=sessionStorage.getItem("page1content"); 
Смежные вопросы