0

我正在为转发器绑定一些文本和日期时间(响应者)。

<asp:Repeater ID="rptList" OnItemDataBound="repeaterDatabound" runat="server">
     <HeaderTemplate>
     </HeaderTemplate>
     <ItemTemplate>
         <tr>
              <td>
                  <b>Respond By</b>
              </td>
              <td>
                  <%#Eval("RespondBy")%>
              </td>
          </tr>

在这里,我想在屏幕上显示之前更改数据时间,我想做rowdatabound类似于下面的操作。我怎样才能为中继器做到这一点。或者在向用户显示之前,是否有任何其他方法可以将值(3Hrs)添加到日期时间响应。

   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 小时,我必须添加的小时数因每个用户而异,

4

2 回答 2

0

您可以在 aspx 文件中执行以下操作。

 ((DateTime)Eval("RespondBy")).AddHours(3)

或者在 aspx 中添加标签/文字,而不是<%#Eval("RespondBy")%>在 ItemDataBound 中使用它

于 2011-11-18T15:54:55.560 回答
0

例如,您可以将您的更改<%#Eval("RespondBy)%>为某些服务器控件,<asp:Literal>然后在您的ItemDataBound方法中更新 this 的值。

或者你可以使用一些内联代码

<%#((DateTime) Eval("RespondBy")).AddHours(3).ToString("dd MMMM yyyy")%>

或者您可以生成一个公共函数,然后您可以在将来重用它。

public static string RespondByDate(DateTime theDate){
    return theDate.AddHours(3).ToString("dd MMMM yyyy");
}
于 2011-11-18T15:59:59.597 回答