使用Eval在TemplateField中显示毫秒数

时间:2012-11-21 06:34:22

标签: c# asp.net .net eval

我有一个模板,如下所示。我还需要显示DateTime的毫秒部分。

我已阅读http://msdn.microsoft.com/en-us/library/bb882581.aspx dateValue.ToString("fff")中的How to: Display Milliseconds in Date and Time Values格式。

使用Eval在模板字段中显示它的最佳方法是什么?

CODE

 <asp:TemplateField HeaderText="Event Time">

    <ItemTemplate>

       <asp:Literal ID="ltlTime" runat="server" Text='<%# Eval("LastChangeTime") %>' ></asp:Literal>
       <asp:HiddenField ID="hdnMilliSeconds" runat="server" Value='<%# ((DateTime)Eval("LastChangeTime")).ToString("fff") %>' />

    </ItemTemplate>
 </asp:TemplateField>

参考:

  1. Eval/Bind TimeOfDay property without milliseconds?

3 个答案:

答案 0 :(得分:1)

试试这个

<%# Convert.ToDateTime(Eval("LastChangeTime")).ToString("FFF") %>

答案 1 :(得分:0)

使用

select convert(varchar, your_date_field, 121) as LastChangeTime
在您的SQL查询中

。 然后在eval中访问“LastChangeTime”

答案 2 :(得分:0)

感谢@kj午睡。我想到了。为了别人的利益,我会在这里发布:

我使用了以下

 '<%# ((DateTime)Eval("LastChangeTime")).ToString("MM/dd/yyyy hh:mm:ss.fff tt") %>' 

CODE

  <asp:TemplateField HeaderText="Application ID">
                        <ItemTemplate>
                            <asp:Literal ID="ltlApplicationID" runat="server" Text='<%# Eval("ApplicationID") %>'></asp:Literal>
                            <asp:HiddenField ID="hdnLastChangeTime" runat="server" Value='<%# ((DateTime)Eval("LastChangeTime")).ToString("MM/dd/yyyy hh:mm:ss.fff tt") %>' />
                        </ItemTemplate>
  </asp:TemplateField>

代码背后

    protected void Application_RowCommand(Object sender, CommandEventArgs e)
    {
        if (e != null)
        {
            int rowIndex = Convert.ToInt32(e.CommandArgument, CultureInfo.InvariantCulture);
            string applicationID = (((System.Web.UI.WebControls.Literal)grdApplications.Rows[rowIndex].Cells[1].Controls[1]).Text).Trim();
            string lastChangeTimeString = (((System.Web.UI.WebControls.HiddenField)grdApplications.Rows[rowIndex].Cells[1].Controls[3]).Value).Trim();

            DateTime lastChangeTime = Convert.ToDateTime(lastChangeTimeString);

        }
    }