Пытался создать событие OnMouseOver для asp: Panel. Обходной путь вызывает другие проблемы - PullRequest
0 голосов
/ 07 февраля 2020

Я работаю над сайтом. На главной странице есть набор панелей ссылок, связанных с определенными страницами-концентраторами на сайте. Если вы посетите одну из этих страниц-концентраторов, она будет сохранена в сеансе, потому что есть определенные страницы, на которых мне нужно знать, какой страницей-концентратором вы, наконец, были. Я также хочу иметь возможность установить эту переменную сеанса из события onMouseOver из linkPanel.
По сути, когда вы наводите курсор мыши на панель ссылок, я хочу установить переменную Session для концентратора, связанного с этой панелью. Так, например, ссылку на «PageX» можно найти в «APanel» и «BPanel». Когда вы посещаете «PageX», я хочу, чтобы он загружал соответствующее подменю для «HubA» или «HubB» в зависимости от того, как пользователь туда попал.

В настоящее время я устанавливаю эту переменную Session в C# код позади. Проблема в том, что я не могу вызвать код функции непосредственно из панели OnMouseOver. Кто-то на этих форумах предложил создать скрытую кнопку asp, которая вызывает нужную функцию, и вы используете javascript, чтобы нажать эту кнопку на панели OnMouseOver. Что было хорошо, и это отличная работа.

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

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

Это разметка для типа элемента linkPanel:

image

Это javascript, который вызывается при наведении курсора на панель:

function parHover() { document.getElementById('<%= ParButton.ClientID %>').click(); }

И это функция codeBehind, которую я хочу вызвать:

protected void ParPanel_OnMouseOver(object sender, EventArgs e)
    {
        Session["CurrentHub"] = "Professional";
    }

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

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

...