ASP.NET: asp: LinkButton с отключенным JavaScript? - PullRequest
7 голосов
/ 26 января 2009

Я хочу использовать asp:LinkButton, так как он выглядит как ссылка, но также имеет обработчик щелчков на стороне сервера.

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

Возможно ли иметь ссылку, которая выглядит как ссылка, но имеет обработчик события OnClick на стороне сервера?


Ответ

Ответ - нет, но ниже приведены некоторые обходные идеи. Принято предложение с ненулевым повышением голосов.

Ответы [ 5 ]

7 голосов
/ 26 января 2009

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


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

asp:LinkButton отображает ссылку HTML и поэтому не может опубликовать на веб-странице; но может только получить запросов. Чтобы обойти эту MS, используйте JavaScript для действий в посте. Однако это невозможно, если Javascript отключен.

asp:Button и asp:ImageButton различны. Они отправляют HTML-форму путем публикации на веб-странице (или получают в зависимости от атрибутов формы), используя истинные HTML-элементы формы. Так что они будут работать без вмешательства JS.

В некоторых браузерах стиль CSS позволяет стилизовать кнопку в виде ссылки, и поэтому ее можно использовать для решения проблемы.

2 голосов
/ 26 января 2009

С чем-то подобным в ASP.Net я обычно отображал элемент управления вместе с «доступным элементом управления», который скрыт с помощью JavaScript. Так что в этом случае он будет отображать LinkButton (скрытый по умолчанию через стили) и обычную кнопку с зарегистрированным JavaScript, чтобы скрыть Button и показать LinkButton.

Это довольно распространенный обходной путь для элемента управления ASP.Net, который плохо воспроизводится без javascript или когда вам нужен «Autopostback» без Javascript.

2 голосов
/ 26 января 2009

Просто идея:

Визуализируйте кнопку ввода и используйте javascript, чтобы превратить ее в ссылку. Кнопка будет работать для браузера, не поддерживающего JavaScript, и станет ссылкой для тех, у кого есть JavaScript.

0 голосов
/ 09 апреля 2011

Только для записи, то, что вы просите, возможно.

Вы должны настроить элемент управления следующим образом:

<asp:LinkButton ID="lbtnRequestReview" Text="[ Request Plan Review ]" OnCommand="lbtnRequestReview_Command" CommandName="cmd" CommandArgument="0" CausesValidation="false" runat="server"/>

и поместите это в коде:

protected void lbtnRequestReview_Command(Object sender, CommandEventArgs e)
        {
           //...
        }

Более подробную информацию вы можете найти здесь .

0 голосов
/ 26 января 2009

Нет типа INPUT, который будет выглядеть как ссылка. Если вы хотите использовать ссылку для выполнения действия типа INPUT на веб-странице, она должна перейти на ту же страницу, на которой вы находитесь.

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

...