大哥们:    小弟我用repeater循环输出来10条新闻标题,主管要求,如果是当天发布的新闻,输出标题的同时,后面还要加一个“New”这样的字样,或一个图片,晕到,我不会,求大哥们帮帮我。    比较现在时间和发布新闻时的时间,这个我已经解决了,但在前台如何加上去就不会了。因为用的是rep,循环输出的。   请大哥们指导。给个演示代码也行,狂谢了。中秋还要加班,操,程序员真是......

解决方案 »

  1.   

    输出时也分页,分页控件用的是 陕北吴旗娃的AspNetPager
      

  2.   

    握手!哥们儿我也加班呢,弄不好要通宵。TNND。
    你的问题可以这样解决,把你的SQL语句改成下面这种形式:
    SELECT id, title = CASE WHEN DATEDIFF(d,发布时间,GETDATE()) = 0 THEN title + '<img src="new.gif">' ELSE title END FROM news ORDER BY 发布时间 DESC
      

  3.   

    ivee兄,你的sql能帮我解释一下,不是太懂,又有些懂,我来试试吧,
      

  4.   

    把新闻标题做成label,在DataItemBound事件里,经判断如果是新的,
    e.item.findcontrol("新闻标题").text=新闻标题+<img src="new.gif">
      

  5.   

    新闻标题如果做成label,循环输出时,aspx页面代码怎么写?我自己做时,新闻标题没有做成label,而是直接绑定在ret中的。就是这种形式:<asp:repeater id="rep" runat="server" EnableViewState="False">
    <itemtemplate>

    <tr>
    <td width="500" height="25">
    <img src="../images/dot2.gif" width="5" height="5"> <a href='ReadArticle.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"ID") %>' target="_blank">
    <%# DataBinder.Eval(Container.DataItem,"Title") %>
    </a>
    </td>
    </tr>
    </itemtemplate>
    </asp:repeater>
      

  6.   

    后台再定义下函数,如
    public function showImg(tDate)
    if 你要的判断 then
    response.write("<image>new图片")
    end if
    end function然后加个
    <img src="../images/dot2.gif" width="5" height="5"> <a href='ReadArticle.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"ID") %>' target="_blank">
    <%# DataBinder.Eval(Container.DataItem,"Title") %>
    绑定。。
    <%# showImg(DataBinder.Eval(Container.DataItem,"你要对比的时间")) %>
      

  7.   

    还是不解!为什么图片要绑定显示,能直接显示吗?在aspx中
      

  8.   

    我给你的代码不行么?只改数据源就行,不用改前端代码。SQL解释如下:如果新闻的发布日期和今天一样(Datediff(d,@d1,@d2) = 0,精确到天),就让Title字段的值后面加上字符串“<img src='new.gif' border=0>”(就是把新图标加上),否则Title保持原样。
      

  9.   

    ivee的方法就可以了,而且非常简单
    ===========
    SELECT id, title = CASE WHEN DATEDIFF(d,发布时间,GETDATE()) = 0 THEN title + '<img src="new.gif">' ELSE title END FROM news ORDER BY 发布时间 DESC他这个方法是这样的,这里的发布时间是你数据里对应新闻的发布时间字段,你自己调整一下.
      

  10.   

    好是好,可SQL语句和页面搅在一齐就不好了。
      

  11.   

    已经通过了,sql在存储过程中写,开始放分
      

  12.   

    还是有个问题,发面在存储过程中,最后一个 select后面加 id后提示错:列名id不明确??begin
                 declare @indextable table(id int identity(1,1),nid int)
                 declare @PageLowerBound int
                 declare @PageUpperBound int
                 set @PageLowerBound=(@pageindex-1)*@pagesize
                 set @PageUpperBound=@PageLowerBound+@pagesize
                 set rowcount @PageUpperBound
                 insert into @indextable(nid) select id from UserSms where RecieveUserId=@RecieveUserId order by ID desc
    select id,RecieveUserId,SmsTitle= CASE WHEN DATEDIFF(d,SentTime,GETDATE()) = 0 THEN SmsTitle + '<img src="../images/icon_new.gif">' ELSE SmsTitle END,SmsText,SmsType,SentTime  from UserSms  O,@indextable t where O.id=t.nid and RecieveUserId=@RecieveUserId and t.id>@PageLowerBound and t.id<=@PageUpperBound order by t.id end
      

  13.   

    新的问题在这里,就差这个了http://community.csdn.net/Expert/topic/4278/4278064.xml?temp=.6372187