这有效:
<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值,但我想知道为什么这不起作用......
答案 0 :(得分:1)
您可以这样做:NavigateUrl='<%# string.Format("subfolder/{0}", GetCustomUrl()) %>'
。
服务器控件属性的数据绑定表达式必须是属性中的唯一内容(不会以您尝试的方式与静态文本混合)。
答案 1 :(得分:1)
您应该将整个表达式放在数据绑定标记中:
<asp:HyperLink ID="EditGridItemLink" runat="server"
NavigateUrl="<%# "subfolder/" + GetCustomUrl() %>">
link
</asp:HyperLink>