码迷,mamicode.com
首页 > Web开发 > 详细

.NET PetShop 4.0 (一)

时间:2014-07-19 20:22:41      阅读:242      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   strong   

 

 

首先,进入 Default.aspx 页面

  过程:输入关键字,点击搜索,跳转至 Search 页面并呈现结果

  

  打开 Default.aspx ,可以看到 btnSearch 点击事件为 btnSearch_Click , 打开 Default.aspx.cs 找到响应方法

  可以看到是使用了 WebUntity 静态类的 SearchRedirect 静态方法:

    private const string REDIRECT_URL = "~/Search.aspx?keywords={0}";

    HttpContext.Current.Response.Redirect(string.Format(REDIRECT_URL, InputText(key, 255)));

  打开 Search.aspx

    <%@ Register Src="Controls/SearchControl.ascx" TagName="SearchControl" TagPrefix="uc1" %>

  虽然不知道什么意思,但可以看出它调用了 SearchControl.ascx ,那么打开 SearchControl.ascx

    <%= Request.QueryString["keywords"] %> 结合页面显示,可知是获取请求的字符串

    <%# Eval("Name") %> 这个一会就知道啦 ^_^

  接着,打开 SearchControl.ascx.cs 有两个方法,先看下 Load 方法(就是加载啦),发现。。。咳咳咳,还是看 PageChanged 吧

      string keywordKey = Request.QueryString["keywords"];  1.获取关键字

             Product product = new Product();            

      searchList.DataSource = product.GetProductsBySearch(keywordKey);   2.使用 Product 对象的 GetProductsBySearch 方法获得数据

             searchList.DataBind();  3.绑定数据

  那么,找到 Product 类的 GetProductsBySearch 方法

    private static readonly IProduct dal = PetShop.DALFactory.DataAccess.CreateProduct();

    dal.GetProductsBySearch(keywords);

  so, 找到 CreateProduct 方法

    

private static readonly string path = ConfigurationManager.AppSetting["WebDAL"];
string className = path + ".Product";
return (PetShop.IDAL.IProduct)Assembly.Load(path).CreateInstance(className);
<appSettings>
    <add key="WebDAL" value="PetShop.SQLServerDAL"/>
</appSettings>

  ∴ className = "PetShop.SQLServerDAL.Product"

  ∵ return后面那个是动态加载程序集并创建所给类型的实例

  ∴ 返回了一个 Product 对象 

   进入 PetShop.SQLServerDAL.Product 找到 GetProductsBySearch

   前面的暂时不需要细看,拉到最后

  

1 using (SqlDataReader rdr = SqlHelper.ExecuteReader(SqlHelper.ConnectionStringLocalTransaction, CommandType.Text, sqlProductsBySearch, parms)) {
2         while (rdr.Read()) {
3              ProductInfo product = new ProductInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2), rdr.GetString(3), rdr.GetString(4));
4              productsBySearch.Add(product);
5         }
6 }
7 return productsBySearch;

可以看到它调用了 SQLHelper的 ExecuteReader(ConnectionString, CommandType, sqlStr,params [] SqlParameter[] commandParameters) 辅助方法
then , it‘s over

大体层次如下:

 

Default.aspx -> Search.aspx -> SearchControl.ascx
PetShop.BLL.Product
PetShop.SQLServerDAL.Product -> PetShop.DBUntity.SQLHelper
PetShop.Model.ProductInfo

.NET PetShop 4.0 (一),布布扣,bubuko.com

.NET PetShop 4.0 (一)

标签:style   blog   http   color   使用   strong   

原文地址:http://www.cnblogs.com/hualongbei/p/3849712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!