<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSource1" Width="637px" CssClass="auto-style1">
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="TimeStamp" DataNavigateUrlFormatString="Logs.aspx?TimeStamp={0}" DataTextField="TimeStamp" HeaderText="TIME STAMP"></asp:HyperLinkField>
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SoneilCloudRemConnectionString %>"
SelectCommand="SELECT [TimeStamp] FROM [SensorLogData] WHERE ([deviceId] = @deviceId)">
<SelectParameters>
<asp:Parameter DefaultValue="121313131" Name="deviceId" Type="String" />
</SelectParameters>
</asp:SqlDataSource>
以上是用于显示带有超链接的日期的代码片段。对我来说,它只显示日期而不是超链接。在我的SQL中,这个日期的数据类型是"日期时间"格式。
我尝试使用其他字段显示在超链接中,它正在工作。仅查找日期时间的问题。
网格视图不会生成包含:
的 URL(位于Timestamp
的时间部分(。这会导致创建没有href
的<a>
标记。
如果您可以没有时间,则可以将DataNavigateUrlFormatString
更改为仅使用日期部分:
DataNavigateUrlFormatString="Logs.aspx?TimeStamp={0:d}"
此处介绍了另一个选项。这将涉及将Timestamp
格式化为特定格式,然后使用'DateTime.ParseExact((解析查询字符串Timestamp
。
DataNavigateUrlFormatString="Logs.aspx?TimeStamp={0:yyyy-MM-dd hh-mm-ss}"
然后在Logs.aspx
:
DateTime.ParseExact(Request.QueryString("Timestamp").ToString(), "yyyy-MM-dd hh-mm-ss", System.Globalization.CultureInfo.CurrentCulture)