Измените значения в столбце, используя foreach перед привязкой к сетке - PullRequest
1 голос
/ 13 июня 2011

Я написал это много ... но как я назначаю 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;
   }
}

Проблема в том, что я получаю encryttedstatusid в iterDTO, но источником информации является список, яхотите назначить зашифрованный идентификатор статуса для listDto, тогда только он будет отображаться в сетке

1 Ответ

0 голосов
/ 13 июня 2011

Я думаю, что вы должны использовать другой список, чтобы сделать это, поскольку существующий список не может быть обновлен во время итерации.См. Следующий код:

  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();

Надеюсь, это поможет ..

...