asp.net - 日期字段的 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 中,这个日期的数据类型是“日期时间”格式。
我尝试使用其他字段在超链接中显示,它正在工作。仅查找日期时间的问题。
解决方案
Gridview 不会构建包含:
(在 的时间部分中Timestamp
)的 URL。这会导致<a>
创建一个没有 的标签href
。
如果您可以没有时间生活,则可以将 更改DataNavigateUrlFormatString
为仅使用日期部分:
DataNavigateUrlFormatString="Logs.aspx?TimeStamp={0:d}"
此处描述了另一种选择。这将涉及格式化Timestamp
为特定格式,然后Timestamp
使用`DateTime.ParseExact() 解析查询字符串。
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)
推荐阅读
- html - 在 Mac OS 上使用 callto 或 tel 的问题
- excel - 在一系列单元格中使用预定义变量 (VBA)
- javascript - 引导开关类不适用于复选框输入?
- laravel - Laravel 关系排序方式
- regex - 正则表达式匹配行与字符串和没有另一个字符串
- django - 出现错误:get() 返回多个对象(使用 get_object_or_404)
- angular - ChromeHeadless 在 2000 毫秒内没有被杀死
- postgresql - 如何授予非超级用户执行功能 pg_read_binary_file 的权限?
- amazon-web-services - 使用 Boto 3 获取 s3 存储桶访问控制信息,仅对 aws 帐户具有真实权限,但无法获取
- javascript - 如何使用 clojurescript 或 om-next 在 dom 元素上切换类