我正在将转发器的一些文本和日期时间(响应者)数据绑定。
<asp:Repeater ID="rptList" OnItemDataBound="repeaterDatabound" runat="server">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<b>Respond By</b>
</td>
<td>
<%#Eval("RespondBy")%>
</td>
</tr>
我想在屏幕上显示数据时间之前更改数据时间,我想做一个与下面类似的rowdatabound
。我怎样才能为转发器做到这一点。或者在向用户显示之前,是否还有另一种方法可以将值(3小时)添加到由dateTime响应。
protected void repeaterDatabound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
DateTime.TryParse(Convert.ToString(DataBinder.Eval(e.Row.DataItem, "RespondBy")), out Respond);
}
}
我无法在客户端添加3小时,我必须为每个用户添加的时间不同,
答案 0 :(得分:0)
您可以在aspx文件中执行以下操作。
((DateTime)Eval("RespondBy")).AddHours(3)
或者在aspx中添加标签/文字而不是<%#Eval("RespondBy")%>
并在ItemDataBound中使用它
答案 1 :(得分:0)
您可以将<%#Eval("RespondBy)%>
更改为某个服务器控件,例如<asp:Literal>
,然后在ItemDataBound
方法中更新此值。
或者你可以使用一些内联代码
<%#((DateTime) Eval("RespondBy")).AddHours(3).ToString("dd MMMM yyyy")%>
或者您可以生成一个公共函数,然后可以在将来重用。
public static string RespondByDate(DateTime theDate){
return theDate.AddHours(3).ToString("dd MMMM yyyy");
}