本人想做一个新闻发布平台,根据发布的时间,在当天发布的记录后添件一个new的图片,现在使用的控件是repeater控件,代码如下:
<asp:repeater id="Repeater1" Runat="server" OnItemCommand="Delete_click" EnableViewState="False">

    <ItemTemplate>
    <tr id="ggn">
    <td id="g2">
    <img src="pic\new.gif" /> 
    <a href='<%# "new2.aspx?id_no=" & container.DataItem("id_no") %>' target=_blank >
<%# container.DataItem("m_title") %>
&nbsp;&nbsp;<%# container.DataItem("m_day") %>
<asp:Image id="newsImage" imageurl="pic\new.gif" runat="server"></asp:Image>
//newsImage就是要根据日期显示的图片 </tr> </ItemTemplate>
请高手赐教!!Thx a lot!

解决方案 »

  1.   

    <a href='ShowDetail.aspx?id=<%#DataBinder.Eval(Container.DataItem,"objectGuid").ToString()%>' target="_blank">
    <%#DataBinder.Eval(Container.DataItem,"Title")%>
    </a>
    <%#ShowNewPic((System.DateTime)DataBinder.Eval(Container.DataItem,"CreateDate"))%>
    CS:  public string ShowNewPic(DateTime s)
      {
       if (s.AddDays(7) > DateTime.Now)
        return "<img src='images/new.gif' align='absmiddle'>";
       else
        return "";  }
      

  2.   

    也可以在绑定事件里设置 newsImage的Visible
      

  3.   

    1.写一个静态类
    public static class CommonHandler
    {
        public static string getiamgeurl(Datetime dtime)
        {
            //根据DateTime.Now.Day 是否和dtime.Day相等,返回相应的url
        }
    }
    2. imageurl= '<%# CommonHandler.getiamgeurl((Eval("m_day")) %>',
       最后那里不对,你自己看看怎么弄吧,我抽烟去了
      

  4.   

    html:<asp:Repeater id="Repeater1" runat="server">
    <ItemTemplate>
    <tr id="ggn">
    <td id="g2">
    <img src="pic\new.gif" />
    <asp:HyperLink ID="HplTitle" Runat="server" Target="_blank"></asp:HyperLink>
    &nbsp;&nbsp;
    <asp:Literal ID="AddDate" Runat="server"></asp:Literal>
    <asp:Image id="newsImage" imageurl="pic\new.gif" runat="server"></asp:Image>
    </td>
    </tr>
    </ItemTemplate>
    </asp:Repeater>CS:
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load);
    this.Repeater1.ItemDataBound +=new RepeaterItemEventHandler(Repeater1_ItemDataBound); }
    #endregion private void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
    DataRowView myDataRow = e.Item.DataItem as DataRowView; if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
    {
    HyperLink HplTitle = (HyperLink)e.Item.FindControl("HplTitle");
    Literal AddDate = (Literal)e.Item.FindControl("AddDate");
    System.Web.UI.WebControls.Image newsImage = (System.Web.UI.WebControls.Image)e.Item.FindControl(newsImage); HplTitle.Text = myDataRow["m_title"].ToString();
    AddDate.Text = myDataRow["m_day"].ToString();
    if(DateTime.Parse(myDataRow["m_day"].ToString()).AddDays(7)>DateTime.Now)
    {
    newsImage.Visible = true;
    }
    else
    {
    newsImage.Visible = false;
    }
    }
    }
      

  5.   

    上面排版有点乱,现在重排一下:html:<asp:Repeater id="Repeater1" runat="server">
        <ItemTemplate>
    <tr id="ggn">
        <td id="g2">
    <asp:HyperLink ID="HplTitle" Runat="server" Target="_blank"></asp:HyperLink>
    &nbsp;&nbsp;
    <asp:Literal ID="AddDate" Runat="server"></asp:Literal>
    <asp:Image id="newsImage" imageurl="pic\new.gif" runat="server"></asp:Image>
        </td>
    </tr>
        </ItemTemplate>
    </asp:Repeater>CS:
    private void InitializeComponent()
    {    
    this.Load += new System.EventHandler(this.Page_Load);
    this.Repeater1.ItemDataBound +=new RepeaterItemEventHandler(Repeater1_ItemDataBound); }
    private void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
    DataRowView myDataRow = e.Item.DataItem as DataRowView;
    //此时,我假定你邦定的数据源是DataTable,所以我这里用了DataRowView,如果是其它的数据源,请改用其它的。
    if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
    {
    HyperLink HplTitle = (HyperLink)e.Item.FindControl("HplTitle");
    Literal AddDate = (Literal)e.Item.FindControl("AddDate");
    System.Web.UI.WebControls.Image newsImage = (System.Web.UI.WebControls.Image)e.Item.FindControl(newsImage); HplTitle.Text = myDataRow["m_title"].ToString();
    AddDate.Text = myDataRow["m_day"].ToString();
    if(DateTime.Parse(myDataRow["m_day"].ToString()).AddDays(7)>DateTime.Now)
    {
    newsImage.Visible = true;
    }
    else
    {
    newsImage.Visible = false;
    }
    }
    }