>我有一个模板,如下所示。我还需要显示日期时间的毫秒部分。
我已经阅读了 http://msdn.microsoft.com/en-us/library/bb882581.aspx How to: Display Milliseconds in Date and Time Values
的dateValue.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>
参考:
- 没有毫秒的 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);
}
}