Asp.net 带有绑定超链接的GridView中的Directory.GetDirectories

Asp.net 带有绑定超链接的GridView中的Directory.GetDirectories,asp.net,vb.net,gridview,getdirectories,Asp.net,Vb.net,Gridview,Getdirectories,我试图从多个目录中获取目录列表,并将它们放入gridview。到目前为止还不错,我甚至包括了一个搜索模式,可以根据查询字符串返回文件夹名称。然而,我的问题在于,当我尝试将文件夹路径转换为GridView中的超链接时,我似乎无法正确获取列名,它返回:“DataBinding:'System.String'不包含名为'FullName'的属性。”我做错了什么?文件夹路径不是“全名”吗 这是我的代码,感谢您的帮助: 代码隐藏(VB.NET) Griview代码: <asp:GridView Sh

我试图从多个目录中获取目录列表,并将它们放入gridview。到目前为止还不错,我甚至包括了一个搜索模式,可以根据查询字符串返回文件夹名称。然而,我的问题在于,当我尝试将文件夹路径转换为GridView中的超链接时,我似乎无法正确获取列名,它返回:“DataBinding:'System.String'不包含名为'FullName'的属性。”我做错了什么?文件夹路径不是“全名”吗

这是我的代码,感谢您的帮助: 代码隐藏(VB.NET)

Griview代码:

<asp:GridView ShowHeader="True" ID="GridView1" runat="server" BorderStyle="None" GridLines="None">
<Columns>
        <asp:TemplateField >
            <ItemTemplate>                   
                <asp:HyperLink ID="HyperLink1" NavigateUrl='' Target="_blank" Text='<%#Eval("FullName")%>' runat="server"></asp:HyperLink>
            </ItemTemplate>
            </asp:TemplateField>
            </Columns>
    <EmptyDataTemplate>
        <em><strong><span style="color: #ff0033">Invalid project code or no project folder found
            with that project code.</span></strong></em>
    </EmptyDataTemplate>
</asp:GridView>

项目代码无效或未找到项目文件夹
使用该项目代码。
亲切问候,,
James.

GridView的数据源是一个字符串列表(包含文件夹的路径)

绑定的超链接包含一条Eval指令,要求检索数据源中每个项的le FullName属性。您的数据源是一个列表,可以这样翻译:

foreach(string path in files)
{
    HyperLink1.NavigateUrl = path.FullName;
}
现在希望您开始看到问题:string类没有任何FullName属性

解决方案是通过以下方式替换Eval(无论如何,这是一个糟糕的解决方案,因为它进行反射,效率不高):


这是一个类型化变量,甚至可以强制转换

你甚至可以这样写:

<%# (string)Container.DataItem %>


编辑:对不起,我是用C#编写代码的,希望您能理解(我的解决方案是用VB实现的!)

GridView的数据源是一个字符串列表(包含文件夹路径)

绑定的超链接包含一条Eval指令,要求检索数据源中每个项的le FullName属性。您的数据源是一个列表,可以这样翻译:

foreach(string path in files)
{
    HyperLink1.NavigateUrl = path.FullName;
}
现在希望您开始看到问题:string类没有任何FullName属性

解决方案是通过以下方式替换Eval(无论如何,这是一个糟糕的解决方案,因为它进行反射,效率不高):


这是一个类型化变量,甚至可以强制转换

你甚至可以这样写:

<%# (string)Container.DataItem %>


编辑:对不起,我是用C#编写代码的,希望您能理解(我的解决方案是用VB实现的!)

太好了,您对它进行了精彩的解释,而且很有效!非常感谢图拉真!当我写这篇文章的时候,我确实开始想“也许字符串列表没有列名”,所以我就想到了:)很高兴它能工作。想想Container.DataItem如果有一天你将gridview绑定到一个复杂的对象列表上,它就避免了Eval方法的反射。太好了,你对它进行了精彩的解释,它很有效!非常感谢图拉真!当我写这篇文章的时候,我确实开始想“也许字符串列表没有列名”,所以我就想到了:)很高兴它能工作。想想Container.DataItem,如果有一天您将gridview绑定到一个复杂对象列表上,它可以避免Eval方法的反射。