2010-03-17 245 views
1

这里是我的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():

名称图集'在当前的情况下不存在

我以前见过这样的函数,但它似乎并没有为我工作。谁能告诉我问题是什么?

回答

1

在你的aspx页面中,你需要包含命名空间,以便编译器知道你的Portfolio对象,我假设它是一个带有静态函数的静态类(如果没有,你需要在使用它之前实例化你的Portfolio对象)。这是您需要在aspx文件顶部的<@ Page之后添加的片段。当然,用正确的名称空间替换字符串。

<%@ Import Namespace="YourApps.Namespace.Where.PorfolioIs" %> 

该错误发生,因为它不知道Portfolio是什么。就好像你试图在代码隐藏文件(.cs文件)中引用它,而没有包含Portfolio类所在的命名空间的using声明。

+0

感谢你们,我忘了导入正确的命名空间。 – Steven 2010-03-18 00:19:34

0

假设Portfolio是一个有效的对象,你是否通过using语句提供了对其命名空间的引用?还要检查以确保GetImageURL()是一个静态函数。您可能只需在GridView的代码后面放置一个模拟保护的静态字符串GetImageURL()函数。您可能可以通过反复试验确定是否是根本原因。