0

这是错误:

  • 收藏已修改;枚举操作可能无法执行。

当每个进程尝试查找项目时会发现此错误。

 protected void SubmitButton_Click(object sender, EventArgs e)
 {
      foreach (DataListItem item in this.ImageRepeater.Items)
      {
           FileUpload fup = (FileUpload)ImageRepeater.FindControl("ImageUpload");
           if (fup.HasFile)
           {
               updateImageChanges();
               divTopImageCheckChangedmessage.Visible = false;
            }
      }         
   }

我的要求是我想满足检查是否没有文件加载到 ASP.Net DataList 中的 Fileupload 控件中,然后不允许,updateImageChanges();要命中的功能。

我会感激你们所有人。

4

2 回答 2

0

由于 updateImageChanges() 不带参数,我假设它再次遍历您的转发器项目?它如何知道要使用什么项目?无论您在该函数中做什么(因为您没有发布它的代码)都是错误的根源,它不在您发布的代码中。但是,此解决方案将适用于您:

您可以更新该函数以获取参数(例如 FileUpload 控件),然后将其从 if 语句传递给 updateImageChanges() 方法。这样,此方法将仅更新更改,而无需再次遍历您的转发器项目以获得所需的内容。

像这样的东西:

  protected void SubmitButton_Click(object sender, EventArgs e)
  {
      foreach (DataListItem item in this.ImageRepeater.Items)
      {
           FileUpload fup = (FileUpload)ImageRepeater.FindControl("ImageUpload");
           if (fup.HasFile)
           {
               updateImageChanges(fup);
               divTopImageCheckChangedmessage.Visible = false;
            }
      }         
   }

   private void updateImageChanges(FileUpload fup)
   {
       // remove your code that loops through to get to the correct file upload
       // leave code that works with current fup and use passed parameter instead of the repeater items collection
   }
于 2013-03-06T08:19:35.643 回答
0

不知道你为什么要遍历 DataList Items,我认为你的代码可能看起来像这样:

检查此示例代码

protected void btn_Click(object sender, EventArgs e)
{
    Button btn = sender as Button;
    DataListItem di = btn.NamingContainer as DataListItem;
    FileUpload fu = di.FindControl("fu") as FileUpload;       
    if (fu.HasFile)
    {
     // save to the database :


    }


}

我认为这个错误是你的 updateImageData 调用方法给了

于 2013-03-06T08:19:37.730 回答