这是我的GridView HTML:
<asp:GridView ID="gvPortfolioImages" runat="server" AutoGenerateColumns="False" DataSourceID="ldsPortfolioImages">
<Columns>
<asp:TemplateField HeaderText="Image" SortExpression="Filename">
<ItemTemplate>
<img src='<%# Portfolio.GetImageURL(Eval("Thumbnail").ToString()) %>' alt='<%# Eval("Thumbnail") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我正在尝试调用Portfolio.GetImageURL()时出现以下错误:
当前上下文中不存在名称“投资组合”
我以前见过这样的函数,但它似乎对我不起作用。谁能告诉我这是什么问题?
答案 0 :(得分:1)
在您的aspx页面中,您需要包含命名空间,以便编译器知道您的Portfolio对象,我假设它是一个带有静态函数的静态类(如果不是,您将需要在使用之前实例化您的Portfolio
对象它)。以下是您需要在aspx文件顶部的<@ Page
之后添加的代码段。当然,用正确的命名空间替换字符串。
<%@ Import Namespace="YourApps.Namespace.Where.PorfolioIs" %>
错误正在发生,因为它不知道Portfolio
是什么。就像你试图在你的代码隐藏(.cs文件)中引用它而没有using
语句,包括你Portfolio
类所在的命名空间一样。
答案 1 :(得分:0)
假设Portfolio是一个有效的对象,您是否通过using语句提供了对其命名空间的引用?还要检查以确保GetImageURL()是一个静态函数。您可能只想在GridView的代码隐藏中放置一个模拟保护的静态字符串GetImageURL()函数。您可以通过反复试验确定是根本原因。