本文主要是介绍Petshop4.0 超级详细介绍(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
昨天说到了Default.aspx页面今天来讲Products.aspx页面,该页面由有一个母版页和一个用户控件组成。
其中的用户控件中只包涵了一个 CustomList 自定义控件它继承至 DataList 并实现分页 :
public event DataGridPageChangedEventHandler PageIndexChanged;
override public object DataSource {
set {
try {
dataSource = (IList)value;
//非泛型列表的基接口,避免用户将没有继承Icollection的类型传递进来如int型之类的。
ItemCount = dataSource.Count; //获取dataSource中元素的数量
}
catch {
dataSource = null;
ItemCount = 0;
}
}
}
//重写BaseDataList.OnLoad()方法
override protected void OnLoad(EventArgs e) {
if (Visible) {
string page = Context.Request[KEY_PAGE];
int index = (page != null) ? int.Parse(page) : 0;
SetPage(index); //初始化NewPageIndex属性
}
}
public void SetPage(int index) {
OnPageIndexChanged(new DataGridPageChangedEventArgs(null, index));
}
//如果PageIndexChanged事件不为空则执行相对应的方法
virtual protected void OnPageIndexChanged(DataGridPageChangedEventArgs e) {
if (PageIndexChanged != null)
PageIndexChanged(this, e);
}
ProductsControl.ascx控件的Page_Load中
this .CachePolicy.Dependency = DependencyFacade.GetProductDependency();////在我的前一篇文章中有介绍
现在来说说它的母版页MasterPage.master它的里面包涵了一个BreadCrumbControl用户控件用来实现产品的导航。其他的都是常用的web控件
接着与 Products.aspx 相关联的 Items.aspx 用来显示产品它主要由 ItemsControl.ascx 用户控件组成包含一个继承 Repeater 的自定义控件 CustomGrid 内部代码和 CustomList差不多。
< tr class="itemText">
< td colspan="2"><asp:HyperLink ID="lnkCart" runat="server" NavigateUrl='<%#string.Format("~/ShoppingCart.aspx?addItem={0}", Eval("Id")) %>' SkinID="lnkCart"></asp:HyperLink></td>
</tr>
<tr class="itemText">
<td colspan="2"><asp:HyperLink ID="lnkWishList" runat="server" NavigateUrl='<%# string.Format("~/WishList.aspx?addItem={0}", Eval("Id")) %>' SkinID="lnkWishlist"></asp:HyperLink></td>
</tr>
这篇关于Petshop4.0 超级详细介绍(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!