Почему это не работает в asp.net? - PullRequest
0 голосов
/ 10 августа 2010

Я использовал это,

<a title="Logout" onclick="javascript:document.getElementById('ctl00_ContentPlaceHolder1_LbLogout').click();" href="#" class="logout">Logout</a></li>
<asp:LinkButton ID="LbLogout" runat="server" style="display:none"
   onclick="LbLogout_Click">Sign out</asp:LinkButton>

Кажется, что тег привязки не запускает событие onclick моей кнопки ссылки ...

Ответы [ 2 ]

2 голосов
/ 10 августа 2010

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

<a title="Logout" onclick="javascript:document.getElementById('<%= Lblogout.UniqueID %>').click();" href="#" class="logout">Logout</a></li>
0 голосов
/ 10 августа 2010

В дополнение к проблеме именования:

  • вы должны return false из обработчика ссылки onclick, в противном случае будет следовать ссылка #, отменяя любую навигацию, которая может возникнуть при нажатии другой ссылки (и прокрутке страницы вверх);

  • не использовать javascript: префиксы в атрибутах обработчиков событий. Они ничего не делают. Вы думаете о javascript: псевдо-URL. Который никогда не должен использоваться в любом случае;

  • вы не можете активировать действие ссылки по умолчанию (навигации по странице), вызвав на нее click(). Все, что click() сделает, это выполнит любое действие onclick JS, связанное с ним. Если вы хотите перемещаться по странице, вам придется сделать это вручную, установив location.href= link.href;

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

...