代码下行Jquery结合Ajax和Web服务使用三层架构实现无刷新分页

这段时间一直在研究代码下行之类的问题,现在正好有机会和大家共享一下.

    在Web服务里代码

/// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
    [System.ComponentModel.ToolboxItem(false)]
    // 若要答应应用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
    [System.Web.Script.Services.ScriptService]
    public class WebService1 : System.Web.Services.WebService
    {

        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }
        [WebMethod]
        public List<Model.T_Student> GetListAjax(int pageindex,int pagesize) {
            BLL.T_Student bll = new BLL.T_Student();
            int count= bll.GetRecordCount("");
            DataTable dt = bll.GetListDataTable(pageindex, pagesize);
            List<Model.T_Student> li = new List<Model.T_Student>();
            string name = "";
            int age;
            string gender = "";
            foreach (DataRow row in dt.Rows)
            {
                name = row["sName"].ToString();
                age =Convert.ToInt32(row["sAge"]);
                gender = row["sGender"].ToString();
                Model.T_Student model = new Model.T_Student();
                model.sName = name;
                model.sAge = age;
                model.sGender = gender;
                li.Add(model);
            }
            return li;
        }
        [WebMethod]
        public int GetLastPageindex(int pagesize)
        {
            BLL.T_Student bnews = new BLL.T_Student();
            int totalcount = bnews.GetRecordCount("");
            if (totalcount % pagesize == 0)
            {
                return totalcount / pagesize;
            }
            else
            {
                return totalcount / pagesize + 1;
            }
        }
    }

    
html页代码

    每日一道理
无知者为梦想中的虚幻而苦苦等待,换回的不是所求的,而是岁月在脸上留下的印痕,一事无成的人一生便是虚度。生活中,与其花时间去等待,不如加快步伐去追寻理想,试着与时间赛跑,也许身躯、心理会感到劳累,但这样的生活毕竟是充实的。
<script src="jquery/Jquery1.7.js" type="text/javascript"></script>
    <script type="text/javascript">

        $(function () {
            var pagesize = 6;
            var pageindex = 1;
            var lastindex = 1;

            function loaddata() {
                $.ajax({
                    type: "post",
                    contentType: "application/json",
                    url: "WebService1.asmx/GetListAjax",
                    data: "{pageindex:" + pageindex + ",pagesize:" + pagesize + "}",
                    success: function (result) {
                        //                        if (result.d.length % pagesize == 0) {
                        //                            lastindex = result.d.length / pagesize;
                        //                        }
                        //                        else {
                        //                            lastindex = result.d.length / pagesize + 1;
                        //                        }
                        var biaoqian = "<table>";
                        biaoqian += "<tr><td>姓名</td><td>性别</td><td>年龄</td></tr>";

                        for (var i = 0; i < result.d.length; i++) {
                            biaoqian += "<tr>";
                            biaoqian += "<td>" + result.d[i]["sName"] + "</td>";
                            biaoqian += "<td>" + result.d[i]["sGender"] + "</td>";
                            biaoqian += "<td>" + result.d[i]["sAge"] + "</td>";
                            biaoqian += "</tr>";
                        }
                        biaoqian += "</table>";
                        $('#divtable').html(biaoqian);
                    }
                })
            }
            function aaa() {
                $.ajax({
                    type: "post",
                    contentType: "application/json",
                    url: "WebService1.asmx/GetLastPageindex",
                    data: "{pagesize:" + pagesize + "}",
                    success: function (result) {
                        lastindex = result.d;
                        //alert(lastindex);
                    }
                })
            }
            loaddata();
            aaa();
            $("a:eq(0)").click(function () {
                pageindex = 1;
                loaddata();
            })
            $("a:eq(1)").click(function () {
                if (pageindex > 1) {
                    pageindex--;
                    loaddata();
                }
            })
            $("a:eq(2)").click(function () {
                if (pageindex < lastindex) {
                    pageindex++;
                    loaddata();
                }
            })
            $("a:eq(3)").click(function () {
                pageindex = lastindex;
                loaddata();
            })
        })
    </script>

    
 

<div id="divtable"></div>
<div><a href="#">第一页</a><a href="#">上一页</a><a href="#">下一页</a><a href="#">最后一页</a><input
        id="txtPageindex" type="text" /><a href="#">Go</a></div>

    
Bll层

private readonly 分页一小时内完成.SQLServerDAL.T_Student dal = new SQLServerDAL.T_Student();
		public T_Student()
		{}
        public DataTable GetListDataTable(int PageIndex, int PageSize) {
            return dal.GetListDataTable(PageSize, PageIndex);
        }

    
DAL层

public DataTable GetListDataTable(int PageSize, int PageIndex)
        {
            SqlParameter[] parameters = {
					new SqlParameter("@sindex", SqlDbType.Int),
					new SqlParameter("@ssize", SqlDbType.Int),					
					};
            parameters[0].Value = PageIndex;
            parameters[1].Value = PageSize;
            return DbHelperSQL.RunProcedureDataTable("usp_student1", parameters);
        }

    
DataAccess

public static DataTable RunProcedureDataTable(string storedProcName, IDataParameter[] parameters)
        {
            SqlConnection connection = new SqlConnection(connectionString);
            DataTable dt = new DataTable();
            connection.Open();
            SqlCommand command = BuildQueryCommand(connection, storedProcName, parameters);
            command.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter adapter = new SqlDataAdapter(command);
            adapter.Fill(dt);
            connection.Close();
            return dt;

        }

    
 

文章结束给大家分享下程序员的一些笑话语录: 这年头的互联网真是娱乐了中国,网民们从各种各样的“门”里钻来钻去,又有好多“哥”好多“帝”,值得大家品味不已……网络经典语录,关于IT与互联网,经典与您分享!

--------------------------------- 原创文章 By 代码和下行 ---------------------------------

posted @ 2013-05-23 22:23  xinyuyuanm  阅读(153)  评论(0编辑  收藏  举报