如何使用asp:Button
或asp:LinkButton
作爲asp:Hyperlink
?如何使(鏈接)按鈕功能作爲超鏈接?
現有的超鏈接只是去同一個頁面上的其他部分:NavigateUrl="#Section2"
我想這樣做的aspx文件而無需額外的編碼。謝謝。
目的是讓按鈕外觀,而不是下劃線的文字BUT 我不想用超鏈接圖像來達到此目的。
如何使用asp:Button
或asp:LinkButton
作爲asp:Hyperlink
?如何使(鏈接)按鈕功能作爲超鏈接?
現有的超鏈接只是去同一個頁面上的其他部分:NavigateUrl="#Section2"
我想這樣做的aspx文件而無需額外的編碼。謝謝。
目的是讓按鈕外觀,而不是下劃線的文字BUT 我不想用超鏈接圖像來達到此目的。
可以使用的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;
}
似乎沒有工作的點擊重定向...應該是單引號? – aspiring
有一種折中的辦法。如果你想有一個HTML控件,但你需要訪問服務器端,您可以簡單地添加了runat="server"
屬性:
<a runat="server" Id="lnkBack">Back</a>
然後,您可以使用Attributes
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lnkBack.Attributes.Add("href", url);
}
}
從而改變href
服務器端:
<a id="ctl00_ctl00_mainContentPlaceHolder_contentPlaceHolder_lnkBack"
href="url.aspx">Back</a>
完成此操作的最佳方法是簡單地將「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>
使用得到相同的結果。
爲什麼要這樣做,而不是直接使用超鏈接? – Aristos
回到HTML基礎(如Aristos評論):爲什麼你甚至會考慮ASP.Net控件? ASP.Net中沒有規定你應該「總是使用控件」。一個簡單的[超鏈接](http://www.w3schools.com/html/html_links.asp)就可以做到。你可以隨意調整它的樣式...... – EdSF