2013-07-29 5 views
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 в следующем:asp.net вид сетки шоу с ConvertTimeFromUtc

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

мне было интересно, если есть способ сделать это в файле aspx.cs так что он отображает версию ConvertTimeFromUtc, когда она отображается.

мне было интересно, если есть что-то я мог бы сделать в GridView1_RowDataBound обновить значение AnalasisDate

ответ

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> 
Смежные вопросы