在 GridView 中从 2 列动态生成超链接

3

我希望我能清楚地解释这个问题:

我有一个GridView,它只显示来自EntityDataSource的ID和名称字段。

我想添加第三列,其中包含与每个ID对应的动态生成的超链接。

但是,这些超链接的navigateurl只能通过连接两个其他字段(未显示)来获得,这两个字段与ID相对应。

假设我的数据源具有以下数据:

[ID] [Name] [Path] [FileName]
 1    ABC    path1  file1
 2    XYZ    path2  file2

我想看到以下的网格视图,其中超链接构建如下:

|ID | NAME | Hyperlink      |             
----------------------------|                
 1  | ABC  | path1/file1.pdf|
 2  | XYZ  | path2/file2.pdf|

如何从两个列构建超链接?


我正在做一个ASP.NET Web表单应用程序,使用从数据库反向工程化的实体类。但是,我在部分类中添加了一个只读属性。但我无法访问它。以下是我在实体类中添加的内容:

public partial class MyEntity 
{ 
   public string FilePath 
   { 
      get { return string.Format("{0}/"{1}.pdf", this.FileName, this.FilePath); } 
   } 
} 

我需要在其他地方添加代码才能访问这个只读属性吗?

感谢您的编辑。我之前遇到了困难。 - colonel_px
验证 MyEntity 的两个部分是否在同一个命名空间中。 - H H
1个回答

3
在后台代码中可以使用类似以下的语句:
protected string GetLink(object oPath, object oFileName) {
    return string.Format("~/{0}/{1}.pdf", oPath.ToString(), oFileName.ToString());
}

在你的aspx页面中,使用以下代码来设置gridview的列:

<asp:TemplateField><ItemTemplate>
    <asp:HyperLink ID="h1" runat="server" NavigateUrl='<% GetLink(Eval("Path"), Eval("FileName")) %>'>Download!</asp:HyperLink>
</ItemTemplate></asp:TemplateField>

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