第三十五讲:互动论坛制作(三、完善主题列表页面)
课程安排:
将主题的状态用图标显示
设置超链接字段
在主题字段中加入NEW及HOT的图标
控制NEW及HOT图标显示的逻辑
将主题的状态用图标显示
1.在GridView中编辑列,添加ImageField字段
2.设置ImageField字段的属性
DataImageUrlField:main_important
DataImageUrlFieldFormatString : ~/images/{0}
设置GridView列的宽度: 智能标记|编辑列|选中列|调整样式选项卡中的ItemStyle|Width,设置列的列宽。
设置发布时间只显示日期,需设置两个地方。编辑日期列,设置DataFormatString为{0:d},设置HtmlEncode为false
设置超链接字段
添加HyperLinkField字段。
设置DataNavigateUrlFields和DataNavigateUrlFormatString以及DataTextField字段。
在主题字段中加入NEW及HOT的图标
1.在GridView的智能标记—>编辑列中,将主题字段转换为TemplateField。
2.在GridView的智能标记中,编辑模板。在ItemTemplate中,拖入两个Image控件,用于显示Hot和New。分别设置两个 Image控件的ImageUrl显示为New和Hot。
控制NEW及HOT图标显示的逻辑
近三天之内的显示为New。
回复次数超过5次的话显示Hot。
DataBound发生在GridView数据绑定发生之后。
在GridView1的DataBound事件中,加入如下代码:
protected void GridView1_DataBound(object sender, EventArgs e) { for (int i = 0; i < GridView1.Rows.Count; i++) { DateTime dt = Convert.ToDateTime(GridView1.Rows[i].Cells[5].Text); if (dt.AddDays(3) < DateTime.Today) { Image img1 = (Image)GridView1.Rows[i].FindControl("Image3"); img1.Visible = false; } if (Convert.ToInt32(GridView1.Rows[i].Cells[4].Text) < 5) { Image img2 = (Image)GridView1.Rows[i].FindControl("Image4"); img2.Visible = false; } } }