2016-11-07 2 views
0

Я бы хотел щелкнуть элемент, чтобы добавить хэш к URL-адресу, а затем инициировать обратную передачу, но я могу получить только тот или иной случай.Как добавить хэш и инициировать обратную передачу одним щелчком элемента <a> веб-формы ASP.net?

Нажатие на элемент с атрибутом onserverclick инициирует обратную передачу, но не добавляет хэш.

<a href="#message" class="anchorButton" onserverclick="BackwardsPost" id="subAnchor" runat="server">Submit</a> 

Щелчок на элементе без onserverclick атрибута приводит к хэш, который будет добавлен к URL, но не постбэк не происходит.

<a href="#message" class="anchorButton" id="subAnchor" runat="server">Submit</a> 

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

Вот элемент Я хочу установить видимый с селектором целевыми псевдо:

<p class="targetMessage" id="message">Insert text here.</p> 

и вот классы CSS я использую:

.targetMessage { 
    display: none; 
} 

.targetMessage:target { 
     display: block; 
     color: red; 
} 

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

Ваш вход оценивается. Спасибо!

+1

Является ли намерение для сообщения появляться прямо перед возвращением страницы? Или сообщение прежде всего предназначено для чтения после того, как страница отправлена ​​назад и перезагружена? – Serlite

+0

@Serlite Я хочу, чтобы сообщение появилось прямо перед тем, как страница заходит назад. –

+0

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

ответ

0

Поскольку ваше желаемое использование href, кажется, конфликтовать с тем, как ASP.NET делает управление, когда onserverclick определена, я хотел бы предложить альтернативный подход, который не опирается на анкер href.

Если вы открыты для перемещения сообщения в разметке, вы можете использовать селектор родственного в сочетании с :focus псевдо-классом, чтобы показать сообщение, когда нажата ссылка:

.targetMessage { 
 
    display: none; 
 
} 
 
.anchorButton:focus + .targetMessage { 
 
    display: block; 
 
    color: red; 
 
}
<a href="#" class="anchorButton" id="subAnchor">Submit</a> 
 
<p class="targetMessage" id="message">Insert text here.</p>

Надеюсь, это поможет! Дайте знать, если у вас появятся вопросы.

+0

Я ценю помощь, но на самом деле не достигает желаемого эффекта. Некоторое время назад я попробовал несколько псевдоклассов, но никто из них не работал совершенно правильно. : focus показывает скрытое сообщение всякий раз, когда пользователь вставляет элемент в элемент, даже если он не нажимает на него или не нажимает клавишу ввода. Я думаю, что это может смутить пользователей. : hover имеет схожие проблемы и: активный еще менее эффективен. @TylerH разместил интересный CSS-хак [здесь] (http://stackoverflow.com/questions/13630229/can-i-have-an-onclick-effect-in-css), который выглядит так, как будто он может работать. –

+0

@ScottNearing Конечно, использование скрытого флажка было следующим решением, которое приходило на ум. Пока вы можете заставить ASP.NET хорошо играть с помощью элемента управления флажком, чтобы инициировать событие postback вместо фактического элемента привязки или кнопки, это похоже на гораздо лучший подход для ваших нужд. – Serlite

+0

Вы были правы в ASP, не желая играть с этим флажком. Скрытый флажок, используемый с: проверенными работами, а также тегом привязки в сочетании с: target. Я все еще не могу получить обратную передачу, а стиль - один и тот же клик. –

 Смежные вопросы

  • Нет связанных вопросов^_^