1

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

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

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

代码

 <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 属性?
4

3 回答 3

1

试试这个

<%# Convert.ToDateTime(Eval("LastChangeTime")).ToString("FFF") %>
于 2012-11-21T08:01:28.887 回答
0

采用

select convert(varchar, your_date_field, 121) as LastChangeTime

在您的 SQL 查询中。然后在 eval 中访问“LastChangeTime”

于 2012-11-21T06:59:35.997 回答
0

感谢@kj 小睡。我想到了。为了其他人的利益,我将其发布在这里:

我用了以下

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

代码

  <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);

        }
    }
于 2012-11-21T09:34:04.510 回答