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>


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1701176

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值