在Asp.NET中进行数据绑定时,使用固定文本和<%#不起作用

时间:2010-11-09 08:41:32

标签: asp.net data-binding

这有效:

<asp:HyperLink ID="EditGridItemLink" runat="server" NavigateUrl="<%# GetCustomUrl() %>">
link
</asp:HyperLink>

link value = http://localhost/MyCustomUrl.aspx

这不是:

<asp:HyperLink ID="EditGridItemLink" runat="server" NavigateUrl="subfolder/<%# GetCustomUrl() %>">
link
</asp:HyperLink>

link value = http://localhost/subfolder/<%# GetCustomUrl() %>

我在Asp.NET GridView的Column / TemplateField中执行此操作。

我做错了什么或者这根本不可能。

当然我现在正在使用一种解决方法,我也设置了其余的NavigateUrl值,但我想知道为什么这不起作用......

2 个答案:

答案 0 :(得分:1)

您可以这样做:NavigateUrl='<%# string.Format("subfolder/{0}", GetCustomUrl()) %>'

服务器控件属性的数据绑定表达式必须是属性中的唯一内容(不会以您尝试的方式与静态文本混合)。

答案 1 :(得分:1)

您应该将整个表达式放在数据绑定标记中:

<asp:HyperLink ID="EditGridItemLink" runat="server"
    NavigateUrl="<%# "subfolder/" + GetCustomUrl() %>">
link
</asp:HyperLink>
相关问题