Как сделать (ссылку) функцию кнопки как гиперссылку?
Как использовать asp:Button
или asp:LinkButton
как asp:Hyperlink
?
Существующая гиперссылка просто переходит в другой раздел на той же странице: NavigateUrl="#Section2"
Я хочу сделать это в aspx файле без дополнительной кодировки. Спасибо.
Цель состоит в том, чтобы отображать кнопку вместо подчеркнутого текста. НО Я не хочу использовать изображение с гиперссылкой для достижения этой цели.
Ответы
Ответ 1
Вы можете использовать событие OnClientClick для вызова функции JavaScript:
<asp:Button ID="Button1" runat="server" Text="Button" onclientclick='redirect()' />
Код JavaScript:
function redirect() {
location.href = 'page.aspx';
}
Но я думаю, что лучше всего было бы создать гиперссылку с помощью css.
Пример:
.button {
display: block;
height: 25px;
background: #f1f1f1;
padding: 10px;
text-align: center;
border-radius: 5px;
border: 1px solid #e1e1e2;
color: #000;
font-weight: bold;
}
Ответ 2
Есть средний путь. Если вам нужен элемент управления HTML, но вам нужно получить доступ к его серверной стороне, вы можете просто добавить атрибут runat="server"
:
<a runat="server" Id="lnkBack">Back</a>
Затем вы можете изменить сервер href
с помощью Attributes
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lnkBack.Attributes.Add("href", url);
}
}
в результате:
<a id="ctl00_ctl00_mainContentPlaceHolder_contentPlaceHolder_lnkBack"
href="url.aspx">Back</a>
Ответ 3
Лучший способ добиться этого - просто добавить "href" к кнопке ссылки, как показано ниже.
<asp:LinkButton runat="server" id="SomeLinkButton" href="url" CssClass="btn btn-primary btn-sm">Button Text</asp:LinkButton>
Использование javascript или выполнение этого программно в page_load также будет работать, но это не лучший способ сделать это.
Вы получите этот результат:
<a id="MainContent_ctl00_SomeLinkButton" class="btn btn-primary btn-sm" href="url" href="javascript:__doPostBack('ctl00$MainContent$ctl00$lSomeLinkButton','')">Button Text</a>
Вы также можете получить те же результаты, используя регулярные
<a href="" class=""></a>
.
Ответ 4
Это можно сделать очень легко, используя PostBackUrl и обычную кнопку.
<asp:Button ID="Button1" runat="server" Text="Name of web location" PostBackUrl="web address" />