看了很多例子都是一层模式写的
我脑子笨 希望有人能写个例子我看
Web  model   dal  bll  
thanks!
如果可以实现无刷新分页就更好了 感谢各位前辈
注释尽量多一点 我希望能得到鱼 也希望能得到钓鱼的技术 

解决方案 »

  1.   

    http://download.csdn.net/source/3130957例子可以到
    www.51aspx.com搜搜看 
      

  2.   

    这个问题 我在CSDN看到不止一次了- - 应该有个前辈出来写个例子的 有时候脑筋转不过来
    哎 
      

  3.   

    以前的一个例子参考着做吧有DAL数据层、BLL逻辑层、Model实模层 web(UI)Model里面大部分都是实体。DAL是只与数据库交互的都在DAL里比如
     public class userdb
        {
            public bool adduser(Model.user model)
            {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString);
                con.Open();
                using (SqlCommand cmd = new SqlCommand("INSERT INTO qzzm_user(Name) VALUES(@Name)", con))
                {
                    cmd.Parameters.AddWithValue("@Name", model.name);
                    if (cmd.ExecuteNonQuery() > 0)
                        return true;
                    else return false;
                }
            }
        }
    //这里都是数据库操作了!
    BLL是完成业务逻辑 处理业务逻辑 需要与数据库交互啊  这样就要调用DAL里的方法了。。比如 DAL.userdb db = new DAL.userdb();
            public bool adduser(Model.user model)
            {
                return db.adduser(model);//这个只是调用db.adduser(model)这个方法
            }
    //这个里面没有业务逻辑 如果有的话要复杂的多。。
    web(UI)是接受业务层 处理后的逻辑。。比如
      BLL.userbll ub = new BLL.userbll();//实例业务逻辑类
                Web.showmessage sm = new Web.showmessage();
                if (ub.adduser(us))//调用ub.adduser(us) 这个方法返回BOOL啊 就是处理后的信息WEB调用业务逻辑(BLL) BLL调用 数据库访问(DAL)然后处理数据返回给WEB
      

  4.   

    示例项目中有个N层结构应用的例子,楼主可以参考一下:http://www.webdiyer.com/AspNetPagerDemo/ntier/default.aspx
      

  5.   

    这个与几层没关系 
    都是 web 做的事情
      

  6.   

    这个与几层没关系  
    都是 web 做的事情
      

  7.   

    传统的三层架构 http://blog.csdn.net/jianxin160/article/details/5429515
    Ioc的实现及应用http://blog.csdn.net/jianxin160/article/details/5434947
    我想这两篇文章比较适合你,至于无刷新的分页原来写过几中分页控件,如果需要可以发给你。
      

  8.   

    去51.aspx.com 去看看,鸟班有个很好的实例!就是提供给初学3层哥的!叫什么名字我忘给了!估计你搜一下三层就会有挺多的!
      

  9.   

    http://www.51aspx.com/S/三层.html
    很多!!
      

  10.   

    ....三层模式 我会 但是分页控件和repeater结合起来 我就晕了头 
      

  11.   


      把查询的集合显示在repeater上你会吧,
      在绑定集合时
       把这个加进去
     PagedDataSource pds = new PagedDataSource();
            pds.AllowPaging = true;
            pds.PageSize = AspNetPager1.PageSize;
            pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
            pds.DataSource = al;//al是你从数据库获取的集合
            AspNetPager1.RecordCount=al.Count;
            rpt_userList.DataSource = pds;
            rpt_userList.DataBind();
      

  12.   

       参考一下下面的格式。。
    下载一个AspNetPager控件
    首页添加引用<%@ Register assembly="AspNetPager" namespace="Wuqi.Webdiyer" tagprefix="webdiyer" %>
    页面添加文字
    <webdiyer:AspNetPager ID="AspNetPager1" runat="server" BackColor="#EEEEEE" 
        CenterCurrentPageButton="True" 
        CustomInfoHTML="共%PageCount%页,当前为第%CurrentPageIndex%页,每页%PageSize%条" 
        FirstPageText="首页" LastPageText="尾页" NextPageText="下一页" 
        onpagechanging="AspNetPager1_PageChanging" PageIndexBoxType="DropDownList" 
        PageSize="20" PrevPageText="上一页" ShowCustomInfoSection="Left" 
        ShowPageIndexBox="Always" SubmitButtonText="Go" TextAfterPageIndexBox="页" 
        TextBeforePageIndexBox="转到">
    </webdiyer:AspNetPager>
    ㈠绑定数据源
            PagedDataSource pds = new PagedDataSource();
            pds.AllowPaging = true;
            pds.PageSize = AspNetPager1.PageSize;
            pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
            pds.DataSource = al;//al是你从数据库获取的集合
            AspNetPager1.RecordCount=al.Count;
            rpt_userList.DataSource = pds;
            rpt_userList.DataBind();㈠单击事件
     public void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e){        this.AspNetPager1.CurrentPageIndex = e.NewPageIndex;
            LoadInfo();//此方法是绑定数据源的方法
        }
      

  13.   

    在有Repeater控件的页面后台用BLL层的方法获取DataSource。
      

  14.   


        private void Binds()
        {
            PagedDataSource pdsList = new PagedDataSource();
            pdsList.DataSource = statisticsManager.GetGoodsList();
            pdsList.AllowPaging = true;
            pdsList.PageSize = AspNetPager1.PageSize;
            pdsList.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
            Repeater1.DataSource = pdsList;
            Repeater1.DataBind();
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                AspNetPager1.RecordCount = statisticsManager.GetGoodsList().Count;
                Binds();
                Label1.Text = "总共" + AspNetPager1.RecordCount.ToString() + "条记录 -- 共" + this.AspNetPager1.PageCount.ToString() + "页";
                
            }
        }
    GetGoodsList方法 用ilist查
      

  15.   


    //BLL层 /// <summary>
            /// 存储过程分页,全部数据
            /// </summary>
            /// <param name="c_cid">当前用户ID</param>
            /// <param name="pageSize">每页显示行数</param>
            /// <param name="pageIndex">页码,第n页</param>
            /// <param name="c_sid">状态ID,[1表示正常],[2表示已删除]</param>
            /// <returns></returns>
            public IList<MuCard> GetAllCardsByProc(int c_cid, int pageSize, int pageIndex, int c_sid)
            {
                return MuCardService.GetAllCardsByProc(c_cid, pageSize, pageIndex,c_sid);
            }//---------------------DAL层------------------------
     /// <summary>
            /// 存储过程分页,全部数据
            /// </summary>
            /// <param name="c_cid">当前用户ID</param>
            /// <param name="pageSize">每页显示行数</param>
            /// <param name="pageIndex">页码,第n页</param>
            /// <param name="c_sid">状态ID,[1表示正常],[2表示已删除]</param>
            /// <returns></returns>
            public static IList<MuCard> GetAllCardsByProc(int c_cid, int pageSize, int pageIndex,int c_sid)
            {
                
                string procText = ConfigurationManager.AppSettings["Pages"].ToString();//读取存储过程名
                IList<MuCard> cardList = new List<MuCard>();//Model实体对象泛型集合
                MuCard card = null;
                SqlParameter[] pars = new SqlParameter[] 
                {
                    new SqlParameter("@pageSize",pageSize),
                    new SqlParameter("@pageIndex",pageIndex),
                    new SqlParameter("@c_cid",c_cid),
                    new SqlParameter("@c_sid",c_sid)
                };
                using (SqlDataReader dr = SqlHelper.ExecProcdureReturnDataReader(procText,CommandType.StoredProcedure,pars))
                {
                    while (dr.Read())
                    {
                        card = new MuCard();
                        card.CID = Convert.ToInt32(dr[0]);
                        card.C_Name = dr[1].ToString();
                        card.C_ComName = dr[2].ToString();
                        card.C_Tel = dr[3].ToString();
                        card.C_Mobile = dr[4].ToString();
                        card.C_GID =Convert.ToInt32( dr[5]);
                        cardList.Add(card);
                    }
                }
                return cardList;
            }