1

在 ASP.Net DetailsView 中有一个名为 LateTimeArrivedAtSchool 的模板字段。此字段的数据来自 SQL Server 时间列。数据库中的数据以小时、分钟和秒的形式存储。

我们希望仅将其显示为小时和分钟。

这是模板字段的标记:

<asp:TemplateField HeaderText="Late Time Arrived At School:" SortExpression="LateTimeArrivedAtSchool">
    <EditItemTemplate>
        <asp:TextBox ID="TextBoxLateTimeArrivedAtSchool" runat="server" 
            Text='<%# Bind("LateTimeArrivedAtSchool") %>'></asp:TextBox>
    </EditItemTemplate>

    <InsertItemTemplate>
        <asp:TextBox ID="TextBoxLateTimeArrivedAtSchool" runat="server" 
            Text='<%# Bind("LateTimeArrivedAtSchool") %>'></asp:TextBox>
    </InsertItemTemplate>

    <ItemTemplate>
        <asp:Label ID="LabelLateTimeArrivedAtSchool" runat="server" 
            Text='<%# Bind("LateTimeArrivedAtSchool", "{0:hh:mm}") %>'></asp:Label>
    </ItemTemplate>

    <ItemStyle ForeColor="Blue" />
</asp:TemplateField>

使用“{0:hh:mm}”会产生一个错误,指出“输入字符串的格式不正确”。

你能告诉我我们需要在 Bind 语句中使用什么吗?

* 更新 * 我将该列的 SQL Server 数据类型从 Time 列更改为 DateTime 列,并且能够仅显示数据的时间部分。

4

1 回答 1

1

使用 eval 而不是 bind

Text='<%# string.Format("{0:hh:mm}", Eval("LateTimeArrivedAtSchool")) %>'
于 2013-01-03T20:35:19.523 回答