2011-11-18 81 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"); 
} 
相關問題