使用Eval在asp按钮上进行Href

时间:2014-04-26 16:57:11

标签: javascript asp.net button eval href

我尝试添加指向ASP.NET按钮的链接,将用户重定向到另一个页面。

这是适用于html按钮的代码

<a href="RentArticle.aspx?id=<%# Eval("id") %>">Rent article</a>

但是我想要一个完全相同的ASP按钮。 我已经四处寻找但没有任何作用。

以下是&#34;解决方案&#34;我试过了

解决方案#1失败

<a href="RentArticle.aspx?id=<%# Eval("id") %>"><asp:Button ID="btnRentArticle" runat="server" Text="Rent article" CssClass="mybutton" /></a>

结果:浏览器开始加载但很快停止加载并仍然显示相同的页面。

解决方案#2失败(与Javascript结合)

<script type="text/javascript">
    function redirect(articleid) { location.href = 'RentArticle.aspx?id=' + articleid; }
</script>
<asp:Button ID="btnRentArticle" runat="server" onclientclick='redirect(<%#Eval("id")%>)' Text="Rent article" CssClass="mybutton" />

结果:与失败的解决方案#1相同

我做错了什么或者我错过了什么?

2 个答案:

答案 0 :(得分:0)

#Eval用于数据绑定表达式,其中有一个容器和一个dataitem。 (例如,Repeater或GridView中的一行。)如果您的按钮不是这种情况,则需要以其他方式获取id。例如,声明一个隐藏字段,在代码隐藏中设置值,并使用javascript检索该值。

答案 1 :(得分:0)

工作示例和最后一个示例之间的区别在于最后一个将回发。您可以通过向点击处理程序添加return false来阻止此操作:

onclientclick='redirect(<%#Eval("id")%>);return false'