web-dev-qa-db-ja.com

(リンク)ボタンをハイパーリンクとして機能させる方法は?

asp:Buttonまたはasp:LinkButtonasp:Hyperlinkとして使用するにはどうすればよいですか?

既存のハイパーリンクは、同じページの別のセクションに移動します:NavigateUrl="#Section2"

追加のコーディングなしでaspxファイルでこれを行いたいです。ありがとう。

目的は、下線付きのテキストの代わりにボタンの外観にすることですが、ハイパーリンク付きの画像を使用したくないこの目的を達成するためです。

16
user763554

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;
}
22
Nils Anders

中間の方法があります。 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>
13
Liam

これを実現する最良の方法は、以下のようにリンクボタンに「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(&#39;ctl00$MainContent$ctl00$lSomeLinkButton&#39;,&#39;&#39;)">Button Text</a>

通常の<a href="" class=""></a>を使用して同じ結果を取得することもできます。

5
mackhax0r

これは、PostBackUrlと通常のボタンを使用して非常に簡単に実行できます。

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