使用 Eval 在模板字段中显示毫秒



>我有一个模板,如下所示。我还需要显示日期时间的毫秒部分。

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

使用 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 属性?

试试这个

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

使用

select convert(varchar, your_date_field, 121) as LastChangeTime

在 SQL 查询中。然后在评估中访问"LastChangeTime"

感谢@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);
        }
    }

最新更新