Gridview - манипулирование элементом данных в TemplateField - PullRequest
0 голосов
/ 24 мая 2011

Я отображаю четыре поля данных в одном столбце сетки, используя поле шаблона. Одним из полей данных является поле даты. Вместо отображения обычной даты я хочу отображать относительные часы / дни. (например: 2 часа назад / 2 дня назад). Как я могу манипулировать полем даты внутри столбца поля шаблона. Пожалуйста, предложите.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

Если другие представления / страницы будут использовать этот формат, вы можете подумать о том, чтобы поместить его на уровень бизнес-службы или в какую-либо служебную функцию, чтобы он не скрывался / не дублировался в пользовательском интерфейсе.

// Business Service
public IList<Person> GetAllActivePeople()
{
 var people = _yourDataRepository.FindActive();
 foreach(var p in people)
 {
  p.MyRelativeDateField = ConvertToRelativeHoursDays(p.MyDateField);
 }
 return people;
}

// probably better as a utility class if other dates of other objects can use this...
private string ConvertToRelativeHoursDays(DateTime someDate)
{
    // implement formatting here
}
0 голосов
/ 24 мая 2011

Вы можете использовать <% # Eval ("Поле даты")%> для манипулирования данными, которые связаны со столбцом во время выполнения.Вы даже можете вызывать функции в своем коде, выполнив что-то вроде этого:

<%# this.MyFunction(Eval("Date Field Name")) %>

Возможно, есть лучший способ сделать это, но это работало для меня в прошлом.Обратите внимание, что Eval возвращает object.

...