나는 시간 값과 여러 시간대에 골머리를 앓고있다. 새 DateTime 값을 UTC 시간으로 저장하고 있지만 LinqDataSource 및 GridView를 사용하여 수정하려고하면 문제가 발생합니다.asp.net에서 바인딩 ("MyValue")을 수정하는 방법
난 쉽게 현재이 DB에 저장 UTC 시간 1 시간을 추가합니다
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# TimeManager.ToLocalTime((DateTime)Eval("OrderDate")) %>' />
</ItemTemplate>
에 정확한 시간을 표시 할 수 있습니다.
그러나 소스로 다시 바인딩하는 것은 쉽지 않습니다. Bind ("OrderDate")는 TimeManager.ToGlobalTime ((DateTime) Bind ("OrderDate")처럼 수정할 수 없습니다.)
LinqDataSource의 OnUpdating 이벤트를 사용하여 값을 전역 시간으로 업데이트하려고 생각했지만 사용자가 날짜 필드가 아닌 다른 필드를 수정하면 어떻게 될까요? 그는 기록 시간 값을 업데이트 할 때마다 한 시간 동안 더 작을 것입니다.
시간대의 영향을받는 시간이 아닌 datetime의 날짜 부분을 수정할 수 있기 때문에 이전 값과 새 값을 비교하는 것도 좋지 않습니까?
Gridview의 모든 주에서 현지 시간을 표시 할 수 있다면 LinqDataSource의 OnUpdating을 쉽게 사용할 수 있습니다.
의견을 공유하세요 ...
당신이 몇 가지 코드를 공유 할 수 (참고. 내가 있으리라 믿고있어 당신은 TimeManager.ToLocalTime()와 제대로 정의 TimeManager ToUTCTime은()가)? ItemUpdating이란 RowUpdating을 의미합니까? – Milan
나는 DetailsView와 ItemUpdating을 생각하고 있었다. GridView에서 일반적으로 DetailsView에 대한 드릴 다운을 통해 직접 업데이트하지는 않지만 아이디어는 같습니다. 내 게시물에 샘플을 추가하겠습니다. – tvanfosson