PDA

View Full Version : سوال: اگه ممكنه يه توضيح راجع به اين كد بديد



Mehdi Zarepour
جمعه 21 مرداد 1390, 18:46 عصر
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{

}
protected void btnAdd_Click(object sender, EventArgs e)
{
if (upImage.HasFile)
{
if (CheckFileType(upImage.FileName))
{
string strFilePath = @"~/images/";
strFilePath += upImage.FileName;
upImage.SaveAs(MapPath(strFilePath));
}
}
}
public bool CheckFileType(string fileName)
{

string ext = Path.GetExtension(fileName);
switch (ext.ToLower())
{
case ".jpg":
case ".jpeg":
case ".png":
case ".gif":
return true;
default:
return false;
}
}
private void Page_PreRender()
{
string upFolder = MapPath("~/images/");
DirectoryInfo dir = new DirectoryInfo(upFolder);
dlsImages.DataSource = dir.GetFiles();
dlsImages.DataBind();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label Text="Image:" runat="server" />
<asp:FileUpload ID="upImage" runat="server" />
<br /><br />
<asp:Button ID="btnAdd" Text="ADD" runat="server" onclick="btnAdd_Click" />
<hr />
<asp:DataList ID="dlsImages" runat="server" RepeatColumns="4">
<ItemTemplate>
<asp:Image ID="Image1" ImageUrl='<%#Eval("Name","~/images/{0}") %>' runat="server" />
<br />
<%#Eval("Name") %>
</ItemTemplate>
</asp:DataList>
</div>
</form>
</body>
</html>
سلام
همه قسمت ها رو فهميدم فقط
اين تكه كد چيكار مي كنه؟
'<%#Eval("Name","~/images/{0}") %>'

و كلاس DirectoryInfo بري چيه و تابع dir.GetFiles(); چيكار مي كنه؟
كلا كار تابع Eval چيه؟

Saman Hashemi
جمعه 21 مرداد 1390, 19:10 عصر
'<%#Eval("Name","~/images/{0}") %>'
فیلدی name به این کنترل بایند میکنه...!

string upFolder = MapPath("~/images/");
DirectoryInfo dir = new DirectoryInfo(upFolder);

تمام فایلهای موجود در اون دایرکتوری به عنوان datasource دیتالیست قرار میده...!

Mehdi Zarepour
جمعه 21 مرداد 1390, 19:32 عصر
فیلدی name به این کنترل بایند میکنه...!

تمام فایلهای موجود در اون دایرکتوری به عنوان datasource دیتالیست قرار میده...!

خيلي ممنون ولي منم مي دونم كه فيلد name رو بايند مي كنه منظورم اين بود كه جلوي image آيا {0} يه place holder هست؟ آيا فيلد name جاي اون قرار مي گيره و بعد بايند ميشه؟ درست ميگم؟ GetFile چيكار ميكنه.

دومي هم كه گفتي من منظورم اون نبود گفتم تابع

Saman Hashemi
جمعه 21 مرداد 1390, 20:06 عصر
درسته فيلد name جاي {0} قرار مي گيره و بعد بايند ميشه

DirectoryInfo dir = new DirectoryInfo(upFolder);
dlsImages.DataSource = dir.GetFiles();

منظورم این بود اشتباه نقل قول کردم
تمام فایل های آدرسی که دادی برمیگردونه که میشه همه عکس ها موجود توی images...!