带有Eval()的NavigateUrl的HyperLink。哪里出错了?

时间:2009-11-22 18:16:59

标签: c# .net asp.net eval code-behind

首先,我在HyperLink.NavigateUrl上的代码隐藏中更改了Page_Load()

但在我决定使用Eval()方法进行设计之后。

<asp:HyperLink runat="server"
     NavigateUrl='<%# String.Format("~/Refuse.aspx?type={0}&id={1}", Eval("type"), Eval("id")) %>' Text="Refuse" />

<asp:HyperLink ID="urlRefuse" runat="server"
     NavigateUrl='<%# String.Format("~/Refuse.aspx?type={0}&id={1}", Request["type"], Request["id"]) %>' Text="Refuse" />

idtype - 来自Request的变量。

但它不起作用。仅显示原始文本“拒绝”。我的错误在哪里?提前谢谢。

6 个答案:

答案 0 :(得分:57)

这很有效

NavigateUrl='<%# Eval("type","~/Refuse.aspx?type={0}") %>'

答案 1 :(得分:15)

这对我有用

NavigateUrl='<%# String.Format("{0}.aspx?ID={1}", DataBinder.Eval(Container.DataItem, "Category"), DataBinder.Eval(Container.DataItem, "Post_ID")) %>'

答案 2 :(得分:4)

在浏览器中尝试使用ViewSource,在href中向客户端呈现的内容是什么?这是你的期望吗?如果您尝试使用请求集合中的变量而无法使用Eval,则需要使用Request查询字符串参数。

<asp:HyperLink runat="server"
     NavigateUrl='<%# String.Format("~/Refuse.aspx?type={0}&id={1}", Request["type"], Request["id"]) %>' Text="Refuse" />

答案 3 :(得分:-1)

试试这个:

<asp:HyperLink ID="HyperLink2" runat="server" onclick='<%# String.Format("AcceptUser({0},{1})",Eval("UserId"), Eval("TsId")) %>' NavigateUrl="javascript:void(0)" Visible='<%# (bool)Eval("CanDelete") %>'>Accept</asp:HyperLink>  

答案 4 :(得分:-1)

试试这个:

HttpUtility.UrlEncode(Eval("type")

答案 5 :(得分:-1)

试试这个对我有用:

Eval("type").ToString()