19

如何使用asp:Buttonor asp:LinkButtonas asp:Hyperlink

现有的超链接只是转到同一页面上的另一个部分:NavigateUrl="#Section2"

我想在 aspx 文件中执行此操作而无需额外编码。谢谢。

目的是让按钮看起来而不是带下划线的文本但我不想使用带有超链接的图像来实现此目的。

4

5 回答 5

22

You can use OnClientClick event to call a JavaScript function:

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

JavaScript code:

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

But i think the best would be to style a hyperlink with css.

Example :

.button {
  display: block;
  height: 25px;
  background: #f1f1f1;
  padding: 10px;
  text-align: center;
  border-radius: 5px;
  border: 1px solid #e1e1e2;
  color: #000;
  font-weight: bold;
}
于 2012-12-26T01:03:08.930 回答
19

有一条中间道路。如果你想要一个 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>
于 2014-01-13T12:17:31.497 回答
9

完成此操作的最佳方法是简单地将“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>.

于 2016-08-18T19:30:38.100 回答
3

这可以使用 PostBackUrl 和常规按钮轻松完成。

<asp:Button ID="Button1" runat="server" Text="Name of web location" PostBackUrl="web address" />
于 2019-06-24T12:18:42.707 回答
0

您可以使用链接按钮导航到同一页面中的另一个部分PostBackUrl="#Section2"

于 2021-01-16T04:17:58.200 回答