如何使用asp:Button
或asp:LinkButton
作为asp:Hyperlink
?
现有的超级链接只会转到同一页面上的其他部分:NavigateUrl="#Section2"
我想在aspx文件中执行此操作而无需额外编码。感谢。
目的是使用按钮外观而不是带下划线的文本但我不想使用带超链接的图像来实现此目的。
答案 0 :(得分:22)
您可以使用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;
}
答案 1 :(得分:13)
有一个中途。如果您想要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>
答案 2 :(得分:4)
实现此目的的最佳方法是将“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>
。
答案 3 :(得分:0)
使用PostBackUrl和常规按钮可以非常容易地完成此操作。
<asp:Button ID="Button1" runat="server" Text="Name of web location" PostBackUrl="web address" />
答案 4 :(得分:0)
您可以使用链接按钮导航到同一页面中的另一个部分,方法是使用 PostBackUrl="#Section2"