0
<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 的值

4

1 回答 1

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>
于 2013-07-29T21:12:06.760 回答