日期字段的 GridView 超链接未使用 vb.net 显示


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

最新更新