テンプレートフィールドを使用して、グリッドビューの1つの列に4つのデータフィールドを表示しています。データフィールドの1つは日付フィールドです。通常の日付ではなく、相対的な時間/日を表示したい。(例:2時間前/ 2日前)。テンプレートフィールド列内の日付フィールドを操作するにはどうすればよいですか。提案してください。
ありがとう。
テンプレートフィールドを使用して、グリッドビューの1つの列に4つのデータフィールドを表示しています。データフィールドの1つは日付フィールドです。通常の日付ではなく、相対的な時間/日を表示したい。(例:2時間前/ 2日前)。テンプレートフィールド列内の日付フィールドを操作するにはどうすればよいですか。提案してください。
ありがとう。
<%#Eval( "Date Field")%>を使用して、実行時に列にバインドされているデータを操作できます。次のような操作を行うことで、コードビハインドで関数を呼び出すこともできます。
<%# this.MyFunction(Eval("Date Field Name")) %>
それを行うためのより良い方法があるかもしれませんが、これは過去に私のために働いてきました。Evalは。を返すことに注意してくださいobject
。
他のビュー/ページがその形式を使用する場合は、UIに埋め込まれたり複製されたりしないように、ビジネスサービスレイヤーまたはユーティリティ関数に配置することを検討してください。
// 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
}