大概是这样的
上面这三个类别
第一个是展示第一条新闻和新闻图片和新闻介绍 然后下面再展示两个条新闻
第二个只展示一条新闻没有图片 也没有下面的新闻列表
第三个 只有个新闻列表
其实都是通过类别 获得新闻 然后展示 只不过展示的外观不同 因为网站里面有很多这样相似的内容 差不多就这三类
第一种方法 提出三个用户控件 每个样式一种 这样就要写三次绑定 以后没多出一种外观样式 就要多弄个控件 然后写绑定
第二种方法 我现在用的 因为展示都业务都是相同的 就是通过类别获得新闻来展示 所以我只用了一个用户控件 然后在用户控件里通过配置大量的属性 来决定怎么展示
上丑陋的demo
先看用户控件的属性 贴一小部分 其实弄了特别多属性 /// <summary>
/// 条数
/// </summary>
public int Top
{
get;
set;
} /// <summary>
/// 是否显示图片
/// </summary>
public bool IsSHowPic
{
get;
set;
}
/// <summary>
/// 是否显示第一条
/// </summary>
public bool IsShowTop
{
get;
set;
} /// <summary>
/// 类别是图片还是汉字
/// </summary>
public bool IsPic
{
get;
set;
} /// <summary>
/// 蓝more的类
/// </summary>
private string bluemoreclass = "more";
public string BlueMoreClass
{
get
{
return bluemoreclass;
}
set
{
bluemoreclass = value;
}
} /// <summary>
/// 绿more的类
/// </summary>
private string greenmoreclass = "more1";
public string GreenMoreClass
{
get
{
return greenmoreclass;
}
set
{
greenmoreclass = value;
}
}
通过属性 控制怎么展示 也只贴一部分
<div class="<%=titleCalss %>"> <!-- 类别的CSS -->
<%if (IsPic == true) //是用图片展示类别还是文字
{ %>
<img src="../img/<%=imgPath %>" /><!-- 类别图片的路径 -->
<%} %>
<%else
{ %>
<%=GetCname();//类别名字 %>
<%} %>
<% if (IsSHowBlueMore == true) //是否展示蓝色的more
{ %>
<p class="<%=BlueMoreClass %>"> <!-- more类的CSS -->
<a href="NewsList.aspx?cid=<%=GetNid()%> ">
<img src="../img/more.png" /></a></p>
<%} %>
</div>
<div class="<%=news%>"> <!-- 新闻加列表的类 -->
<%if (IsShowTop == true) //是否显示第一条
{ %>
<%if (IsSHowPic == true) //是否展示第一条的图片
通过配置属性来展示 <uc:VideoPart ID="VP7" runat="server" CatId="BUSINESSTECHNOLOGY" Morepath="more.png"
ClassName="ssntitle" TopNum="4" IsBigTitle="big" Jclass="ssn_bar" />
<uc:VideoPart ID="VP8" runat="server" CatId="ENTERTAINMENTCULTURE" Morepath="more.png"
ClassName="ssntitle" TopNum="4" IsBigTitle="big" Jclass="ssn_bar" />
现在的问题是 目前只有三种外观 但是没增加一种外观 用户控件里的逻辑判断 就要增加 恶心的if else 还有多很多属性 缪军大叔给了我解决方法 受益匪浅 特别鸣谢~ 不过还是想征集下大家的思路 从服务器端渲染UI, 是不是最适合的方案呢?
请问怎么解决这种相同的业务 不同的业务外观 这样的问题呢? 谢谢~~
上面这三个类别
第一个是展示第一条新闻和新闻图片和新闻介绍 然后下面再展示两个条新闻
第二个只展示一条新闻没有图片 也没有下面的新闻列表
第三个 只有个新闻列表
其实都是通过类别 获得新闻 然后展示 只不过展示的外观不同 因为网站里面有很多这样相似的内容 差不多就这三类
第一种方法 提出三个用户控件 每个样式一种 这样就要写三次绑定 以后没多出一种外观样式 就要多弄个控件 然后写绑定
第二种方法 我现在用的 因为展示都业务都是相同的 就是通过类别获得新闻来展示 所以我只用了一个用户控件 然后在用户控件里通过配置大量的属性 来决定怎么展示
上丑陋的demo
先看用户控件的属性 贴一小部分 其实弄了特别多属性 /// <summary>
/// 条数
/// </summary>
public int Top
{
get;
set;
} /// <summary>
/// 是否显示图片
/// </summary>
public bool IsSHowPic
{
get;
set;
}
/// <summary>
/// 是否显示第一条
/// </summary>
public bool IsShowTop
{
get;
set;
} /// <summary>
/// 类别是图片还是汉字
/// </summary>
public bool IsPic
{
get;
set;
} /// <summary>
/// 蓝more的类
/// </summary>
private string bluemoreclass = "more";
public string BlueMoreClass
{
get
{
return bluemoreclass;
}
set
{
bluemoreclass = value;
}
} /// <summary>
/// 绿more的类
/// </summary>
private string greenmoreclass = "more1";
public string GreenMoreClass
{
get
{
return greenmoreclass;
}
set
{
greenmoreclass = value;
}
}
通过属性 控制怎么展示 也只贴一部分
<div class="<%=titleCalss %>"> <!-- 类别的CSS -->
<%if (IsPic == true) //是用图片展示类别还是文字
{ %>
<img src="../img/<%=imgPath %>" /><!-- 类别图片的路径 -->
<%} %>
<%else
{ %>
<%=GetCname();//类别名字 %>
<%} %>
<% if (IsSHowBlueMore == true) //是否展示蓝色的more
{ %>
<p class="<%=BlueMoreClass %>"> <!-- more类的CSS -->
<a href="NewsList.aspx?cid=<%=GetNid()%> ">
<img src="../img/more.png" /></a></p>
<%} %>
</div>
<div class="<%=news%>"> <!-- 新闻加列表的类 -->
<%if (IsShowTop == true) //是否显示第一条
{ %>
<%if (IsSHowPic == true) //是否展示第一条的图片
通过配置属性来展示 <uc:VideoPart ID="VP7" runat="server" CatId="BUSINESSTECHNOLOGY" Morepath="more.png"
ClassName="ssntitle" TopNum="4" IsBigTitle="big" Jclass="ssn_bar" />
<uc:VideoPart ID="VP8" runat="server" CatId="ENTERTAINMENTCULTURE" Morepath="more.png"
ClassName="ssntitle" TopNum="4" IsBigTitle="big" Jclass="ssn_bar" />
现在的问题是 目前只有三种外观 但是没增加一种外观 用户控件里的逻辑判断 就要增加 恶心的if else 还有多很多属性 缪军大叔给了我解决方法 受益匪浅 特别鸣谢~ 不过还是想征集下大家的思路 从服务器端渲染UI, 是不是最适合的方案呢?
请问怎么解决这种相同的业务 不同的业务外观 这样的问题呢? 谢谢~~
小吴童鞋你这啥设计啊你在不同的地方有到这个东西头部图片,读取的类别等等都会有所不同。。这样做用户控件带的的共用性根本不算大反而会增加很多逻辑判断造成加载速度过慢建议直接输出HTML吧。
建议直接输出HTML吧呵呵,这也是我的建议,不过要看在哪里输出了,是服务器端拼还是js在客户端拼
<%=FunctionName() %>