用户控件为web开发带来了许多便捷,比如方便布局,使设计界面层次清晰,还有模块的重用性等等。
通常情况下我们使用用户控件是因为页面某一模块在多个页面出现。
比如页头、页尾等等。也有人为了页面简单而选择将页面拆分为多个用户控件实现布局。
这里想说的是比通常情况下略微特殊的使用状态。看下面的页面截图:
这里的截图来自CSDN博客首页、呵呵。2个新闻列表模块。
对比发现结构基本类似,我们做web项目过程中经常碰到类似状况。
很多模块的内容来源相同,只是因为筛选条件不同所以显示不同内容而已。
如果只是常规使用用户控件、固然也很方便。无非是COPY代码,然后修改局部细节。
但是也有更为简单的办法,比如我们可以对用户控件封装一个属性,从而满足不同条件的需要进行调用。
用户控件部分代码(这里只贴出后台部分):
public partial class NewsList : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindNewsList(NewsTypeID);
}
}
/// <summary>
/// 新闻类型ID
/// </summary>
public int NewsTypeID { set; get; }
}
那么在aspx页面调用的时候,我们可以通过指定NewsTypeID从而读取自己想要的内容。如下:
<uc1:NewsList ID="NewsList1" runat="server" NewsTypeID="1" />
<uc1:NewsList ID="NewsList2" runat="server" NewsTypeID="2" />
呵呵、仅此而已、很方便。