2011-11-18 51 views
0

我是一个数据绑定中继器的一些文本和日期时间(回应)。如何在数据绑定Repeater中显示值之前修改值?

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

在这里,我想改变DATATIME之前,我在屏幕上显示出来,我想做一个rowdatabound类似于下面的一个。我该怎么做一个中继器。或者,在将其显示给用户之前,还有其他方法可以将value(3Hrs)添加到由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

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"); 
} 
相关问题