私は ajax ファイル アップローダーを使用して多くの画像をアップロードしました。すべての画像をディレクトリにのみ保存します (データベース内の 1 つのレコードのみを意味します)。そのディレクトリからグリッドビューにすべての画像を表示するにはどうすればよいですか?
これは、画像をアップロードしてディレクトリフォルダーごとにデータベースに保存する方法に関する私のコードです。
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;
}
}
これは別のコードです(グリッドビューに画像を表示する別のWebページ):
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindStory();
}
}
protected void BindStory()
{
gvStory.DataSource = daoStory.GetAll();
gvStory.DataBind();
}
データベースからレコードを取得するためにエンティティ フレームワークを使用しています。
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();
}
私はこのラムダ式に不慣れで、エラーが発生します:「System.Collections.IEnumerable」を実装していないため、コレクション初期化子で型を初期化できません。これは正しい方法ですか? activityID == listAct.