Vb.net 如何动态设置DataNavigateUrlFormatString?或者如何评估网页上的Page.User.Identity.Name?

Vb.net 如何动态设置DataNavigateUrlFormatString?或者如何评估网页上的Page.User.Identity.Name?,vb.net,gridview,eval,Vb.net,Gridview,Eval,我正在建立一个GridView,可以下载歌曲。因此,我使用超链接文件ld并使用日期导航EurlformatString 例如 现在, 我需要将Page.User.Identity.Name合并到DateNavigateUrlFormatString中 比如说, DataNavigateUrlFormatString="~/uploads/UserName/{0}" which Page.User.Identity.Name depending on the user login.

我正在建立一个GridView,可以下载歌曲。因此,我使用超链接文件ld并使用日期导航EurlformatString

例如

现在,

我需要将Page.User.Identity.Name合并到DateNavigateUrlFormatString中

比如说,

    DataNavigateUrlFormatString="~/uploads/UserName/{0}" which  Page.User.Identity.Name depending on the user login. 
我试图从后面的代码访问DataNavigateUrlFormatString,但我做不到。 我尝试使用Eval,例如

      '~/uploads/" <%# Eval("Page.User.Identity.Name") %> /{0}'
“~/uploads/”/{0}”
这也不行

希望有人能指给我看

谢谢

L

最终解决方案

     <asp:TemplateField HeaderText="Play">
              <ItemTemplate> 
                    <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl = '<%#    String.Format("~/UserUploads/{0}/",Page.User.Identity.Name)+ "/" + Eval("Song_Name")  %>' Text="Play" >
                    </asp:HyperLink>

                </ItemTemplate> 
            </asp:TemplateField> 

DataNavigateUrlFormatString希望占位符来自控件数据源中的字段

我的建议是,既然您已经知道要构建的url,那么可以设置hyperlink控件的NavigateUrl属性

NavigateUrl =  '<%# String.Format("~/UserUploads/{0}/",Page.User.Identity.Name)+ "/" + Eval("Song_Name") %>'
NavigateUrl=''

我在尝试放置时遇到了这个错误。顺便说一下,我正在使用HyperLinkField。有什么想法吗?解析器错误消息:只有具有数据绑定事件的对象才支持数据绑定表达式。System.Web.UI.WebControl.HyperLinkField没有数据绑定事件。@Laurence Nyein您能将其更改为TemplateColumn和ad吗d一个LinkButton?它可以很好地工作,因为它有一个数据绑定事件,这段代码可以很容易地使用它。对了,现在我使用HyperLink控件进行更改。它不再给我解析器错误。但是,url变成了/uploads/UserName/MrABC而不是/uploads/MrABC/a.mp3。第二个是正确的。有什么想法吗?@LaurenceNyein是所有用户的“a.mp3”常量?如果是,您可以将“/a.mp3”放在“{0}”Hi Scartag.最后,此组合给出了我想要的结果…''感谢您的帮助..您应该添加“最终解决方案”“作为一个答案,接受它,而不是错误的答案scartag@Rich你没有读到我们在我回答后的对话的评论吗?我的回答导致了最终的解决方案。如果你读了他的问题,你会发现他解释得不够详细,但我的回答能够引导他找到最终解决方案。不过,我会修改我的答案,将他的解决方案包括在内。我认为,在Stackoverflow上,你应该编辑你的答案以使其正确,这样对于新手来说,这个问题很容易阅读,而不是保留不正确的答案和随后的评论链。也许你应该编辑你的答案,使其看起来像“最终解决方案”,而不是劳伦斯添加第二个答案?如果这是你担心的,那会保住你的声誉。@Rich好的。。完成。最初的答案是基于他提供的错误信息。但是,在编辑答案以显示正确/最终解决方案时,您是对的。
NavigateUrl =  '<%# String.Format("~/UserUploads/{0}/",Page.User.Identity.Name)+ "/" + Eval("Song_Name") %>'