# ReviewList 用户控件、

说明： ReviewList用户控件显示了由用户所写的关于特定产品的评价意见列表。它被注册和应用于Commerce Starter Kit的ProductDetails页面

点击这里可以了解到更多关于用户控件和如何在ASP.NET网络应用中使用用户控件的内容.

使用说明： ReviewList用户控件逻辑被完全封装到其Page_Load事件句柄中。当浏览器客户端的用户访问这个包含用户控件的页面时，Page_Load事件句柄就会被调用。

Page_Load 事件句柄： ReviewList用户控件在文件的顶部展示了一个单一的公共域—ProductID.这使得ReviewList控件-比如在ProductDetails.aspx网页—或者以编制程序的方式或者以声明的方式(经由一个标签属性)设置ProductID来获取一张评价表.需要说明的是只有那些在它们使用前进行了”公共”的祖先声明的域,属性和方法才能以上面说的方式外部使用.(比如Page_Load事件句柄在它之前没有”公共”的关键字祖先.正因为如此才不能从ProductDetails.aspx网页调用)

ReviewList's Page_Load 事件句柄使用ProductID声明来调用ASPNET.StarterKit.Commerce.ProductsDB 类的"GetReviews"方法去获取特定产品用户的评价集.这种方法内部使用了"ReviewsList"存储过程来从商品数据库里获取评价信息

评价集使用模板服务器控件来显示, 服务器控件含有单一的用户自定义模板: "ItemTemplate"定义了表单里每个记录的外观.

由ProductsDB.GetReviews()方法返回的数值通过设置DataList的数据源属性并调用其"DataBind()"方法来装入。DataList当"DataBind()"方法被调用时将反复的调用数据源的每一行—使用ItemTemplate来个人定制每一行的外观

性能说明：

- ReviewList用户控件没有对ProductsDB.GetReviews()方法产生的结果进行缓冲。这是因为ReviewList用户控件现在仅用在ProductDetails.aspx页面中。而后者本身使用输出缓冲。所以 ReviewList用户控件产生的结果由其所在页面进行缓冲。如果将来在页面上使用不缓冲输出的ReviewList用户控件，就应该在这里插入缓冲数据逻辑。