0

我通过 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(这是我的数据库列,用于存储我存储的图像的文件夹目录)。

4

1 回答 1

1

您不需要这样做,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();

这意味着您Story要从Model.story满足您的Where条件的列表中返回一个列表。

于 2013-06-10T07:58:51.620 回答