细读IWMS标签(三)给分类新闻瘦身

分类新闻在IWMS里是没有任何参考资料的。但是仔细一看,很多HTML是可以删除修改的,所以想起给他瘦身,尽量使他靠近标准。其中标题前面硬塞个图片的做法期待在下一个版本中有所改善。最终的结果我个人比较满意,实际应用中至少减掉了一半的代码量。

首先来解读一下原版:

<blockquote><%BindAllNew();%>
<asp:DataList id=”dlAll”
RepeatDirection=”Horizontal”
RepeatColumns=”2″
CellSpacing=”0″
CellPadding=”0″
Width=”100%”
DataKeyField=”classid”
OnItemDataBound=”dlAll_ItemBound”
runat=”server”>
<!–指定table的ID,间隙,宽度–>
<itemStyle Width=”50%” CssClass=”alignTop” />
<!–指定列TD的宽度(2列就是50% 3列就是33%,一般不动,和所采用的class样式–>
<itemTemplate>
<!–一个新闻栏目循环的开始–>
<divmframe”)%>”>
<!–获取当前界面风格的样式,如果没有指定,就用class“mframe”–>
<table width=”100%” cellspacing=”0″ cellpadding=”0″>
<tr>
<td></td>
<td>
<table width=”100%” cellpadding=”0″ cellspacing=”0″ border=”0″>
<tr><td>
<%#GetSortPic((System.Data.DataRowView)Container.DataItem)%>
<!–获取标题图片,没有图片就用文字说明–>
</td><td align=”right”>
<a href=”<%#DataBinder.Eval(Container.DataItem,”cUrl”)==DBNull.Value ? GetUrlSort((int)DataBinder.Eval(Container.DataItem,”classid”),DataBinder.Eval(Container.DataItem,”sdir”).ToString()) : DataBinder.Eval(Container.DataItem, “cUrl”).ToString()+”\” target=\”_blank”%>”><img src=”<%=style.PicMore%>” border=”0″ alt=”more”/></a>
<!–获得MORE的图片和链接,其中的html部分可以大胆修改比如图片的alt=”more”,改成“更多内容”–>
 
</td></tr>
</table>
</td>
<td></td>
</tr>
</table>
<table width=”100%” cellspacing=”0″ cellpadding=”0″>
<tr>
<td></td>
<td >
<table width=”100%”>
<tr><td valign=”top”>
<table width=”100%” cellpadding=”0″ cellspacing=”0″ border=”0″>
<asp:Repeater id=”rpClass” runat=”server” >
<itemTemplate>
<!–一个新闻条目循环的开始–>
<tr><td height=”20″ align=”left”>
<%#NewsTitle((System.Data.DataRowView)Container.DataItem, 33)%>
<!–获得新闻标题,33是指调用的西文半角字数–>
</td><td width=”35″ align=”center”>
<spandateandtime”)<dateTime.Now.Date ? “gray” : “time”%>”>
<!–新闻时间的的样式–><%#String.Format (“{0:MM-dd}”,DataBinder.Eval(Container.DataItem,”dateandtime”))%></span>
<!–获得新闻时间,其中的时间样式可以试着改改–>
</td></tr>
</itemTemplate></asp:Repeater>
<!–一个新闻条目循环的结束–>
</table>
</td></tr>
</table>
</td>
<td></td>
</tr>
</table>
<table width=”100%” cellspacing=”0″ cellpadding=”0″ >
<tr>
<td></td>
<td> </td>
<td></td>
</tr>
</table>
</div>
<!–一个新闻栏目循环的结束–>
</itemTemplate>
</asp:DataList></blockquote>
明白了意思之后,我的修改版本为:
<blockquote>
<%BindAllNew();%>
<asp:DataList id=”dlAll”
RepeatDirection=”Horizontal”
RepeatColumns=”3″
DataKeyField=”classid”
OnItemDataBound=”dlAll_ItemBound”
runat=”server”>
<itemTemplate>
<div>
<%#GetSortPic((System.Data.DataRowView)Container.DataItem)%><span><a href=”<%#DataBinder.Eval(Container.DataItem,”cUrl”)==DBNull.Value ? GetUrlSort((int)DataBinder.Eval(Container.DataItem,”classid”),DataBinder.Eval(Container.DataItem,”sdir”).ToString()) : DataBinder.Eval(Container.DataItem, “cUrl”).ToString()+”\” target=\”_blank”%>”><img src=”<%=style.PicMore%>” border=”0″ alt=”more”/></a></span></div>
<ul><asp:Repeater id=”rpClass” runat=”server” >
<itemTemplate>
<li><%#NewsTitle((System.Data.DataRowView)Container.DataItem, 33)%><spandateandtime”)<dateTime.Now.Date ? “gray” : “time”%>”><%#String.Format (“{0:MM-dd}”,DataBinder.Eval(Container.DataItem,”dateandtime”))%></span></li></itemTemplate></asp:Repeater>
</ul>
</itemTemplate>
</asp:DataList>
</blockquote>

为“MORE”增加了一个SPAN的样式,以便对其进行控制。在样式中对强塞进来的那个箭头图片用样式表的选择进行了隐藏。

发表评论

邮箱地址不会被公开。 必填项已用*标注