2012-12-26 14 views
14

Come utilizzare uno asp:Button o asp:LinkButton come asp:Hyperlink?Come rendere il funzionamento del pulsante (collegamento) come collegamento ipertestuale?

il collegamento ipertestuale esistente va solo a un'altra sezione nella stessa pagina: NavigateUrl="#Section2"

io voglio fare questo nel file aspx senza codice aggiuntivo. Grazie.

Lo scopo è avere un pulsante al posto del testo sottolineato MA Non voglio usare un'immagine con collegamento ipertestuale per raggiungere questo scopo.

+1

perché farlo e non utilizzare direttamente un collegamento ipertestuale? – Aristos

+7

Torna alle basi HTML (come commentato da Aristos): Perché dovresti considerare anche i controlli ASP.Net per tali? Non esiste alcuna regola in ASP.Net che "si dovrebbe" utilizzare sempre i controlli. Un semplice [collegamento ipertestuale] (http://www.w3schools.com/html/html_links.asp) funzionerà. Puoi 'stile' come vuoi ... – EdSF

risposta

18

È possibile utilizzare evento OnClientClick per chiamare una funzione JavaScript:

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

codice JavaScript:

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

ma penso che la cosa migliore sarebbe per lo stile un collegamento ipertestuale con i CSS.

Esempio:

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

Non sembra funzionare il reindirizzamento al clic ... dovrebbe essere una citazione singola? – aspiring

10

C'è una via di mezzo. Se si desidera un controllo HTML, ma è necessario accedere lato server che si può semplicemente aggiungere l'attributo runat="server":

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

È quindi possibile modificare il lato href server utilizzando Attributes

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

conseguente:

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

Il modo migliore per farlo è semplicemente aggiungendo "href" al pulsante di collegamento come di seguito.

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

Utilizzo di javascript, o farlo a livello di codice in Page Load, funziona così, ma non è il modo migliore per andare a fare questo.

Otterrete questo risultato:

<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> 

È anche possibile ottenere gli stessi risultati utilizzando utilizzando un normale <a href="" class=""></a>.