在数据绑定gridview之前使用foreach更改列中的值

时间:2011-06-13 09:46:05

标签: c# asp.net gridview datasource

我写了这么多......但是我如何将encryptedstatusid分配给listDTO用于数据绑定?

protected void Page_Load(object sender, EventArgs e)
{
   List<DTO> listDto;
   IApplication engine;

   try
   {
      engine = new Engine();
      listDto = engine.ReadHistory(Session["UserID"].ToString());

      foreach (DTO iterDTO in listDto)
      {
         iterDTO.EncryptedStatusId = Triple.Encrypt(iterDTO.StatusId.ToString());

         //how i assign the encryptedstatusid to the listDTO for databind?????????????

      }

      this.dvHistory.DataSource = listDto;
      this.dvHistory.DataBind();

   }
   catch (Exception )
   {
      throw ;                
   }
   finally
   {
      engine = null;
   }
}

问题是我将加密的datatd获取到iterDTO,但是satasource是一个列表,我想分配加密 pted status id到listDto,然后只显示在网格

1 个答案:

答案 0 :(得分:0)

我认为你应该使用另一个列表来执行此操作,因为迭代时无法更新现有列表。请参阅以下代码:

  engine = new Engine();
  listDto = engine.ReadHistory(Session["UserID"].ToString());

  List<DTO> listDtoNew=new List<DTO>();

  foreach (DTO iterDTO in listDto)
  {
     iterDTO.EncryptedStatusId = Triple.Encrypt(iterDTO.StatusId.ToString());

     listDtoNew.add(iterDTO);

  }

  this.dvHistory.DataSource = listDtoNew;
  this.dvHistory.DataBind();

希望这会有所帮助..