ASP.NET控制15天之内的新闻后面显示一张new图片(新闻列表采用Repeater或DataList控件显示)

我想用repeater控件显示新闻列表,Repeater控件里边通过Panel控件的Visible属性控制new图片的显示与否下面是前台页面关键代码:<asp:Repea... 我想用repeater控件显示新闻列表,Repeater控件里边通过Panel控件的Visible属性控制new图片的显示与否
下面是前台页面关键代码:
<asp:Repeater ID="rep_xw" runat="server">
<ItemTemplate>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="newslb01" style="text-align:left;">
<tr>
<td width="20" height="28" align="center"><img src="images/in_r9_c12.jpg" width="8" height="5" /></td>
<td>
<a href="Infos_Show.aspx?ID=<%# DataBinder.Eval(Container.DataItem,"ID")%>" target="_blank"><%# DataBinder.Eval(Container.DataItem,"Title").ToString().Length > 17 ? DataBinder.Eval(Container.DataItem,"Title").ToString().Substring(0,17)+"…" : DataBinder.Eval(Container.DataItem,"Title").ToString()%>
<asp:Panel ID="pan" runat="server" Visible="false">
<img src="images/in_r8_c14.jpg" width="21" height="9" hspace="3" align="absmiddle"/>
</asp:Panel>
</td>
<td width="50"><%# Convert.ToDateTime(DataBinder.Eval(Container.DataItem, "AddTime")).ToString("yy/MM/dd").Replace("-", "/")%></td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
后台代码:
string str_xw = "Select top 6 * From Infos Where i_Class in (12) order by ID desc";
DataSet ds1 = co.ds(str_xw);
DataRow[] row1 = ds1.Tables[0].Select("i_Class=12");
foreach (DataRow rs in row1)
{
string str = "select datediff('d','" + Convert.ToDateTime(rs["AddTime"]) + "','" + DateTime.Now + "')";
time = rs["AddTime"].ToString(); //获取新闻发布时间与当前时间的间隔
foreach (RepeaterItem Item1 in rep_xw.Items)
{
Panel pan1 = (Panel)Item1.FindControl("pan");
if (Convert.ToInt32(co.EXS(str)) <= 15)
pan1.Visible = true;
else
pan1.Visible = false;
}
co.rep_Bind(str_xw, rep_xw);
}
我觉得我的想法应该没错,但是不知道那块程序代码逻辑有问题,得不到我所要的结果,请各位高手指点指点,不胜感激!!
展开
 我来答
比北极熊还熊
2009-07-20 · TA获得超过124个赞
知道小有建树答主
回答量:322
采纳率:0%
帮助的人:221万
展开全部
首先,你的代码写的真滥,连数据库N次、不必要的循环!

rep_xw要先进行数据绑定,再显示15天之内的新闻图片!不知道你是怎么做的?如果不是就有问题了啊(别的好像没有什么逻辑错误)。
yiwei124
2009-07-20 · TA获得超过1197个赞
知道小有建树答主
回答量:1187
采纳率:0%
帮助的人:356万
展开全部
Panel pan1 = (Panel)Item1.FindControl("pan");
if (Convert.ToInt32(co.EXS(str)) <= 15)
pan1.Visible = true;
else
pan1.Visible = false;

这里为什么不用时间判断大小呢,用时间判断是最准确的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友c5d7fd8
2009-07-20
知道答主
回答量:29
采纳率:0%
帮助的人:31.5万
展开全部
为什么不直接用image服务器控件呢,也有visible属性可以设置啊?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友6a1dc12cf
2009-07-20
知道答主
回答量:8
采纳率:0%
帮助的人:3.3万
展开全部
虽然我不懂.net。我做asp时曾经做过和这类似的,要求三天内显示一个new小图标。道理很简单,就是拿当天日期,减去添加新闻时日期,看看是否大于15就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式