在ASP.NET C#中创建GridView超链接

5

我的代码使用C# ASP.NET 3.5。

在下面的代码中,“Msg”包含许多单词、空格和字符(例如:“Failed to prepare Sync Favorites: Directory does not exist: \STL-FNP-02\ ryounes $ \Sync\Favorites”)。这个“Msg”是从数据库中提取到网格视图中。我无法为这个“Msg”创建超链接,因为它有空格,所以无法创建超链接。

我需要为这个“Msg”创建一个超链接,并在LINQ查询中使用它。

我认为应该使用eval或url编码器。我不确定如何操作。有人能说一下怎么做吗?

 <asp:HyperLinkField DataTextField="Msg" HeaderText="Msg" DataNavigateUrlFields="Msg"   
  DataNavigateUrlFormatString="Sync.aspx?Msg={0}" />
3个回答

4
最简单的方法是使用类似于的东西进行操作:
<asp:TemplateField HeaderText="Msg"> 
    <asp:HyperLink runat="server" Text='<%# HttpUtility.UrlEncode(Eval("Msg")) %>' NavigateUrl='<%#Eval("Msg")%>' />
</asp:TemplateField>

虽然不确定语法是否正确,但你可以大致了解意思


0

这不会创建链接,因为它不是一个有效的URL,而不是使用超链接列,最可能需要迁移到一个模板并自己处理它,或者至少对其进行一些格式化。

我无论如何都会很谨慎地将其作为超链接,它到底要去哪里呢?

如果根据消息有一个特定的位置应该去,那么在绑定到网格之前先计算出来...


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接