使用ConvertTimeFromUtc显示asp.net网格视图

时间:2013-07-29 21:07:55

标签: c# asp.net

<asp:SqlDataSource ID="SqlDS1" runat="server" ConnectionString="<%$ ConnectionStrings:phiSQL %>"                
SelectCommand="select ID, AnalasisDate from ProgTbl  "></asp:SqlDataSource>

<asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDS1" Width="1200px"
    AutoGenerateColumns="False"  OnRowCommand="GridView1_OnRowCommand" 
    AllowSorting="True">
<Columns>
    <asp:BoundField DataField="ID"  HeaderText="Identification"/>
    <asp:BoundField DataField="AnalasisDate"  HeaderText="Time Stamp"/>
         ...

我需要将Analasis日期转换为以下内容:

TimeZoneInfo.ConvertTimeFromUtc(result.AnalasisDate.Value, tz).

我想知道是否有办法在aspx.cs文件中执行此操作,以便在显示时显示ConvertTimeFromUtc版本。

我想知道在GridView1_RowDataBound中我能做些什么来更新AnalasisDate的价值

1 个答案:

答案 0 :(得分:0)

您可以使用TemplateField进行标记:

<asp:TemplateField HeaderText="Time Stamp">
    <ItemTemplate>
        <%# TimeZoneInfo.ConvertTimeFromUtc(Eval(result.AnalasisDate), GetTimeZone()) %>
    </ItemTemplate>
</asp:TemplateField>

此处GetTimeZone是受保护或公共方法,应在类后面的代码中声明并返回必要的时区。

或者,您可以将所有转化逻辑留给代码隐藏功能,比如ConvertFromUtc,并在<ItemTemplate >内调用它:

<asp:TemplateField HeaderText="Time Stamp">
    <ItemTemplate>
        <%# ConvertFromUtc(Eval(result.AnalasisDate)) %>
    </ItemTemplate>
</asp:TemplateField>