[英]How to display all images in a directory folder from database? Using entity framework lambda
我通過ajax文件上傳器上傳了很多圖片,我只將所有圖片保存在一個目錄中(意味着它在數據庫中只有1條記錄)。 如何顯示該目錄中 gridview 中的所有圖像?
這是我關於如何上傳圖像並將它們按目錄文件夾存儲在數據庫中的代碼:
protected void AjaxFileUpload1_UploadComplete(object sender, AjaxControlToolkit.AjaxFileUploadEventArgs e)
{
String pathdirectory = (Session["StoryPath"].ToString() + "/"); // selected item.
EnsureDirectoriesExist(pathdirectory);
String filepathImage = @"~/Story/" + pathdirectory;
AjaxFileUpload1.SaveAs(Server.MapPath(filepathImage + e.FileName));
Session["filepathImage"] = filepathImage;
}
protected void btnDone_Click(object sender, EventArgs e)
{
if (Session["filepathImage"] != null)
{
string filepathImage = Session["filepathImage"] as string;
act.ActivityID = Convert.ToInt32(dropListActivity.SelectedItem.Value);
act.Title = txtStoryTitle.Text;
act.FileURL = filepathImage;
daoStory.Insert(act);
daoStory.Save();
// Label1.Text = filepathImage;
}
}
這是另一個代碼(另一個關於將圖像顯示到網格視圖的網頁):
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindStory();
}
}
protected void BindStory()
{
gvStory.DataSource = daoStory.GetAll();
gvStory.DataBind();
}
我正在使用實體框架從數據庫中檢索記錄,這就是我在類文件中執行此操作的方式(此處為 CRUD):
public IList<Model.story> GetAll(int listAct)
{
IList<Model.story> lstImages = context.stories.ToList();
return lstImages.Where(c => c.ActivityID == listAct).Select(a => new Story() { a.FileURL }).ToList();
}
我是這個 lambda 表達式的新手,它給了我一個錯誤:無法使用集合初始值設定項初始化類型,因為它沒有實現“System.Collections.IEnumerable”,我這樣做是否正確? 我想從activityID == listAct的故事中選擇fileURL(這是我的數據庫列,用於存儲我存儲的圖像的文件夾目錄)。
您不需要執行Select
因為您已經返回 Model.story 。 嘗試將return
語句替換為:
return lstImages.Where(c => c.ActivityID == listAct).ToList();
請注意,如果您想專門返回某個集合,請使用Select
。 您的示例在初始化new Story() { a.FileURL }
值時語法錯誤。 假設我們更正了該語法:
return lstImages.Where(c => c.ActivityID == listAct).Select(a => new Story() { FileURL = "SOMEURL" }).ToList();
這意味着您Model.story
滿足您Where
條件的Model.story
列表中返回Story
列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.