如何在中继器的标签中显示时间

本文关键字:显示 时间 标签 中继器 | 更新日期: 2023-09-27 18:30:15

>我有一张文章表,这个表包括一个名为"dateofSubmitArticle"的字段当我显示我想在中继器的标签中显示的文章时,这篇文章在数据库中提交了多少时间转发器的数据源为

 var n = (from a in DataContext.Context.Articles
                 join u in DataContext.Context.Users
                 on a.UserID equals u.UserID
                 orderby a.ArticleID descending
                 where a.IsConfirmByAdmin == true
                 select new { 
                 ArticleID=a.ArticleID,
                 ArticleTitle=a.ArticleTitle,
                 ArticleSummery=a.ArticleSummery,
                 SubmitDate=a.SubmitDate,
                 Username=u.Username,
                 ArticleImageName=a.ArticleImageName
                 }).Take(15);
        rptArticleTitle.DataSource = n;
        rptArticleTitle.DataBind();

如何在中继器的标签中显示时间

您可以使用 Timespan 类。若要实现目标,请在转发器中放置 asp 标签和隐藏字段,将 SubmitDate 绑定到该隐藏字段。

.HTML:

<asp:Label runat="server" id="Submitted" />
<asp:Hidden runat="server" id="val" Value='<%#Eval("SubmitDate")%>'/>

现在在中继器中,ItemDataBound找到标签并隐藏并使用下面的代码。

void ItemDataBound()
{
  if(e.Item.ItemType == DataItemType || e.Item.ItemType ==AlternatingItemType)
  {
      var lbl = e.Item.FindControl(lable_id) as Label;
      var hid = e.Item.FindControl(hidden_id) as Hidden;
      if(lbl !=null and hid !=null)
      {
          var val = DateTime.Parse(hid.Value);
         // Get the TimeSpan of the difference. 
         TimeSpan elapsed = now.Subtract(val); 
         lbl.Text = string.Format("{0} days ago", elapsed.Days);
      }
  }
}