web-dev-qa-db-fra.com

Comment faire fonctionner le bouton (lien) comme hyperlien?

Comment utiliser un asp:Button ou asp:LinkButton comme asp:Hyperlink?

Le lien hypertexte existant va simplement à une autre section de la même page: NavigateUrl="#Section2"

Je veux le faire dans le fichier aspx sans codage supplémentaire. Merci.

Le but est d'avoir un aspect bouton au lieu du texte souligné MAIS je ne veux pas utiliser une image avec un lien hypertexte pour atteindre cet objectif.

16
user763554

Vous pouvez utiliser l'événement OnClientClick pour appeler une fonction JavaScript:

<asp:Button ID="Button1" runat="server" Text="Button" onclientclick='redirect()' />

Code JavaScript:

function redirect() {
  location.href = 'page.aspx';
}

Mais je pense que le mieux serait de créer un hyperlien avec CSS.

Exemple :

.button {
  display: block;
  height: 25px;
  background: #f1f1f1;
  padding: 10px;
  text-align: center;
  border-radius: 5px;
  border: 1px solid #e1e1e2;
  color: #000;
  font-weight: bold;
}
22
Nils Anders

Il y a une voie médiane. Si vous voulez un contrôle HTML mais que vous devez y accéder côté serveur, vous pouvez simplement ajouter le runat="server" attribut:

<a runat="server" Id="lnkBack">Back</a>

Vous pouvez ensuite modifier le côté serveur href en utilisant Attributes

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
       lnkBack.Attributes.Add("href", url);
    }
}

résultant en:

<a id="ctl00_ctl00_mainContentPlaceHolder_contentPlaceHolder_lnkBack" 
      href="url.aspx">Back</a>
13
Liam

La meilleure façon d'y parvenir est d'ajouter simplement "href" au bouton de lien comme ci-dessous.

<asp:LinkButton runat="server" id="SomeLinkButton" href="url" CssClass="btn btn-primary btn-sm">Button Text</asp:LinkButton>

Utiliser javascript, ou le faire par programme dans la page_load, fonctionnera également, mais ce n'est pas la meilleure façon de procéder.

Vous obtiendrez ce résultat:

<a id="MainContent_ctl00_SomeLinkButton" class="btn btn-primary btn-sm" href="url" href="javascript:__doPostBack(&#39;ctl00$MainContent$ctl00$lSomeLinkButton&#39;,&#39;&#39;)">Button Text</a>

Vous pouvez également obtenir les mêmes résultats en utilisant un <a href="" class=""></a> Normal.

5
mackhax0r

Cela peut être fait très facilement en utilisant un PostBackUrl et un bouton standard.

<asp:Button ID="Button1" runat="server" Text="Name of web location" PostBackUrl="web address" />
1
Jamie