asp:Button
またはasp:LinkButton
をasp:Hyperlink
として使用するにはどうすればよいですか?
既存のハイパーリンクは、同じページの別のセクションに移動します:NavigateUrl="#Section2"
追加のコーディングなしでaspxファイルでこれを行いたいです。ありがとう。
目的は、下線付きのテキストの代わりにボタンの外観にすることですが、ハイパーリンク付きの画像を使用したくないこの目的を達成するためです。
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;
}
中間の方法があります。 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>
これを実現する最良の方法は、以下のようにリンクボタンに「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>
を使用して同じ結果を取得することもできます。
これは、PostBackUrlと通常のボタンを使用して非常に簡単に実行できます。
<asp:Button ID="Button1" runat="server" Text="Name of web location" PostBackUrl="web address" />