从GridView源代码html调用函数

时间:2010-03-17 01:40:06

标签: c# asp.net namespaces

这是我的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()时出现以下错误:

当前上下文中不存在名称“投资组合”

我以前见过这样的函数,但它似乎对我不起作用。谁能告诉我这是什么问题?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

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