我希望我能清楚地解释一下:
我有一个只显示EntityDataSource的ID和Name字段的GridView。
我想添加第三列,其中包含与每个ID对应的动态生成的超链接。
但是,这些超链接的导航只能通过连接与ID对应的其他两个字段(未显示)来获得。
假设我的DataSource有以下数据:
[ID] [Name] [Path] [FileName]
1 ABC path1 file1
2 XYZ path2 file2
我希望看到以下gridview,其超链接构造为:
|ID | NAME | Hyperlink |
----------------------------|
1 | ABC | path1/file1.pdf|
2 | XYZ | path2/file2.pdf|
如何从2列构建超链接?
我正在做一个ASP.NET Web表单应用程序,实体类是从数据库中反向设计的。但是,我向部分类添加了只读属性。但是我无法访问它。这是我添加到我的实体类
的内容public partial class MyEntity
{
public string FilePath
{
get { return string.Format("{0}/"{1}.pdf", this.FileName, this.FilePath); }
}
}
我是否需要在其他地方添加任何代码才能访问此只读属性?
答案 0 :(得分:4)
在后面的代码中使用这样的东西:
protected string GetLink(object oPath, object oFileName) {
return string.Format("~/{0}/{1}.pdf", oPath.ToString(), oFileName.ToString());
}
并在gridview列的aspx页面中,使用:
<asp:TemplateField><ItemTemplate>
<asp:HyperLink ID="h1" runat="server" NavigateUrl='<% GetLink(Eval("Path"), Eval("FileName")) %>'>Download!</asp:HyperLink>
</ItemTemplate></asp:TemplateField>
答案 1 :(得分:3)
如果你想要比ahmad molaie建议更多的灵活性,你可能想看看这个技巧:http://www.tomot.de/en-us/article/7/asp.net/gridview-overview-of-different-ways-to-bind-data-to-columns