一个DEMO前台:
<asp:DataList ID="imageList" runat="server" RepeatColumns="3" Width="200px">
<ItemTemplate>
<asp:Image ImageUrl='<%# Eval("Name","~/UpLoad/{0}") %>' ID="image1" runat="server" />
</ItemTemplate>
</asp:DataList>
<br />
<asp:FileUpload ID="Fupload" runat="server" />
<asp:Button ID="btnAdd" Text="upload" runat="server" OnClick="btnAdd_Click" />
后台:protected void Page_PreRender()
{
string upFolder = Server.MapPath("~/UpLoad/");
DirectoryInfo dir = new DirectoryInfo(upFolder);
this.imageList.DataSource = dir.GetFiles();
this.imageList.DataBind();
}
问题是前台的绑定字段的来源有点迷糊: <%# Eval("Name","~/UpLoad/{0}") %> 这的Name字段是哪来的?后台根本没有给呀? 还是说每个控件默认有这个绑定字段?
<asp:DataList ID="imageList" runat="server" RepeatColumns="3" Width="200px">
<ItemTemplate>
<asp:Image ImageUrl='<%# Eval("Name","~/UpLoad/{0}") %>' ID="image1" runat="server" />
</ItemTemplate>
</asp:DataList>
<br />
<asp:FileUpload ID="Fupload" runat="server" />
<asp:Button ID="btnAdd" Text="upload" runat="server" OnClick="btnAdd_Click" />
后台:protected void Page_PreRender()
{
string upFolder = Server.MapPath("~/UpLoad/");
DirectoryInfo dir = new DirectoryInfo(upFolder);
this.imageList.DataSource = dir.GetFiles();
this.imageList.DataBind();
}
问题是前台的绑定字段的来源有点迷糊: <%# Eval("Name","~/UpLoad/{0}") %> 这的Name字段是哪来的?后台根本没有给呀? 还是说每个控件默认有这个绑定字段?
不是啊 后台绑定的代码我已经帖出来了 不存在叫name的字段名和别名啊
关键是这玩意无法自动绑定啊 getFiles() //反回当前目录的文件列表(MSDN)
反回的字段咋成name了,太奇怪了,运行过,可以正常的跑所以代码不存在错误
那去查查文档,看下getFiles()函数的具体情况?
DataList1.DataSource = imagesfile.GetFiles("*.jpg");
DataList1.DataBind();获取文件夹下图片
Name为文件名称
感谢这个回答。 大概明白你的意思。
可是还有很多逻辑不通啊:
1:
////////////////////////////////
DirectoryInfo.GetFiles 方法 ()
返回当前目录的文件列表。 命名空间:System.IO
返回值
FileInfo 类型数组。
FileInfo 类
提供创建、复制、删除、移动和打开文件的实例方法,并且帮助创建 FileStream 对象。无法继承此类。 命名空间:System.IO
(此为MSDN内容)
////////////////////////////////
- -! 我更模糊了。。
directorinfo返回的是fileinfo类的数组。 然而fileinfo里面的确有Name这个属性, 照这意思 凡是这种类型的玩意全部都可以邦定属性?就连书上也很少提到绑定类的属性.. ps:还是我的知识面很小?
求大家帮我解惑, 要分的直说
可以绑定任何类的属性(当然这个属性要有get块,费话),前台绑定的时候只用输入属性就OK,
留下此帖 做为CSDN漠视难民的证据。