简单分业(带参-适合中小型)_.net

来源:互联网 发布:电信运营商数据 编辑:程序博客网 时间:2024/04/30 14:57
public class LEOpagination
    {
        /// <summary>
        /// 强力分页代码
        /// </summary>
        /// <param name="pageSize">每页显示条数</param>
        /// <param name="pageIndex">第几页</param>
        /// <param name="tableName">表名</param>
        /// <param name="fieldsList">查询字段</param>
        /// <param name="fieldSearchKey">查询条件</param>
        /// <param name="orderString">排序字段</param>
        /// <param name="recordCount">总条数</param>
        /// <param name="pageCount">总页数</param>
        /// <returns></returns>
        public static DataSet GetList(int pageSize, int pageIndexs, out int pageIndex, string tableName, string fieldsList, string fieldSearchKey, string orderString, out int recordCount, out int pageCount)
        {
            DataSet ds=null;    
            //string sql = "select top " + pageSize + " * from " + tableName + " where id<= (select min(" + orderString + ") from (select top " + ((pageSize * (pageIndex - 1)) + 1) + " id from " + tableName + " where " + fieldSearchKey + " order by " + orderString + " desc)as aa) and " + fieldSearchKey + " order by " + orderString + " desc";
            string SQL_SELECT_LIST = "select top {0} * from {1} where id<= (select min({2}) from (select top {3} {4} from {5} where {6} order by {7} desc)as aa) and {8} order by {9} desc";
            object[] args = { pageSize, tableName, orderString, ((pageSize * (pageIndexs - 1)) + 1), "id", tableName, fieldSearchKey, orderString, fieldSearchKey, orderString };
            StringBuilder sqls = new StringBuilder("");
            sqls.AppendFormat(SQL_SELECT_LIST, args);
            ds = DALSQLHelper.Query(Convert.ToString(sqls));
            recordCount = Convert.ToInt32(DALSQLHelper.GetSingle("select count(*) from " + tableName + " where " + fieldSearchKey));
            pageCount = (recordCount % pageSize) > 0 ? ((recordCount / pageSize) + 1) : (recordCount / pageSize);
            pageIndex = (pageCount < pageIndexs) ? pageCount : pageIndexs;
            return ds;
        }                

    }



页面后台绑定代码


         /// <summary>
        /// 每页显示记录条数
        /// </summary>
        public int pageSize = 10;
        /// <summary>
        /// 显示第几页
        /// </summary>
        public int pageIndex = 1;
        /// <summary>
        /// 总记录条数
        /// </summary>
        public int recordCount = 0;
        /// <summary>
        /// 总页数
        /// </summary>
        public int pageCount = 0;
        /// <summary>
        /// 查询条件
        /// </summary>
        public string mohuzhi = "";
        /// <summary>
        /// 返回页面名字
        /// </summary>
        public string YemianName = "perList";

       

        private void Bind()
        {

         
            string sql = GetSqlWhere();
            int pageIndexs = pageIndex;
            DataSet ds = LEOpagination.GetList(pageSize, pageIndexs, out pageIndex, "BT_personnel", "*", sql, "id", out recordCount, out pageCount);

           //LEOpagination 为上面的分页程序的 类名

            this.Lists.DataSource = ds;
            this.Lists.DataBind();
        }

      

         private string GetSqlWhere()
        {  


           string mohu = "";
            if (this.fieldSearchKey.Text != null && this.fieldSearchKey.Text != "")
            {
                mohu = this.fieldSearchKey.Text;
                mohuzhi = mohu;
            }
            else
            {
                mohu = Request["mohuchaxun"];
                if (mohu != null && mohu != "")
                {
                    this.fieldSearchKey.Text = mohu;
                    mohuzhi = mohu;
                }
            }

           string Page = Request["Page"];
            if (Page!=null&&Page!="")
            {
                pageIndex = Convert.ToInt32(Page);
            }
            string PageSize = Request["PageSize"];
            if (PageSize!=null&&PageSize!="")
            {
                pageSize = Convert.ToInt32(PageSize);
            }

            #region // 定义查询参数
            string title = string.Empty;//
            #endregion

            StringBuilder sql = new StringBuilder();
            sql.Append(" 1=1 ");
            pageIndex = Utils.GetInt(Utils.GetQueryStringValue("page"), pageIndex);//显示第几页
            pageSize = Utils.GetInt(Utils.GetQueryStringValue("pagesize"), pageSize);//每页显示记录条数
            title = this.fieldSearchKey.Text;
            if (title != string.Empty) { sql.Append(" and (name like '%" + title + "%') "); }
            return sql.ToString();

        }


       public int Getye(int pageIndex, int pageCount,int typeid)
        {
            int ye = 1;

            if (typeid == 1)
            {
                if (pageIndex > 1)
                {
                    ye = pageCount - 1;
                }                
            }
            else
            {
                if (pageIndex < pageCount)
                {
                    ye = pageIndex + 1;
                }
                else
                {
                    ye = pageCount;
                }
            }

            return ye;
        }



web页面的代码


        <asp:TextBox ID="fieldSearchKey" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="搜索" onclick="Button1_Click" />
        <asp:Repeater runat="server" ID="Lists">
            <HeaderTemplate>
                <table>
                    <tr>
                        <td>
                            id
                        </td>
                        <td>
                            名称
                        </td>
                        <td>
                            时间
                        </td>
                    </tr>
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td>
                        <%# Eval("id") %>
                    </td>
                    <td>
                        <%# Eval("name") %>
                    </td>
                    <td>
                        <%# Eval("add_time") %>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                <tr>
                    <td colspan="3">
                    <div class='diggPage'>
    <script type="text/javascript">
        function GoToPageNum() {
            var obj = document.getElementById('txtIndex');
            var num = 0;
            if (obj != null) num = obj.value;
            var r = /^[0-9]*[1-9][0-9]*$/;
            if (!r.test(num) || obj.value <= 0) return;
            var pageNumber = <%# pageCount %>;
            if (num <= 0 || num > pageNumber || num == 1) return;
            window.location.href = "<%# YemianName %>.aspx?Page=" + num+"&mohuchaxun=<%# mohuzhi %>";
        }
        function CheckKeyDown() {
            if (event.keyCode == 13) {
                GoToPageNum();
                event.returnValue = false; return false;
            }
        }
    </script>
    每页显示 <a href='<%# YemianName %>.aspx?Page=<%# pageIndex %>&PageSize=10&mohuchaxun=<%# mohuzhi %>'
        class="cp">10 </a><a href='<%# YemianName %>.aspx?Page=<%# pageIndex %>&PageSize=20&mohuchaxun=<%# mohuzhi %>'>
            20 </a><a href='<%# YemianName %>.aspx?Page=<%# pageIndex %>&PageSize=50&mohuchaxun=<%# mohuzhi %>'>
                50 </a><span>第<%# pageIndex %>页/共<%# pageCount%>页,共<%# recordCount%>条记录,</span>
    <a href='<%# YemianName %>.aspx?Page=1&mohuchaxun=<%# mohuzhi %>'>首页 </a><a href='<%# YemianName %>.aspx?Page=<%# Getye(pageIndex,pageCount,1) %>&mohuchaxun=<%# mohuzhi %>'>
        上一页 </a><a href='<%# YemianName %>.aspx?Page=<%# Getye(pageIndex,pageCount,2) %>&mohuchaxun=<%# mohuzhi %>'>
            下一页 </a><a href='<%# YemianName %>.aspx?Page=<%# pageCount %>&mohuchaxun=<%# mohuzhi %>'>
                末页 </a><span>跳转至
                    <input type="text" id="txtIndex" size="3" onkeydown='CheckKeyDown();' onchange='GoToPageNum();'
                        style='height: 20px; width: 35px;' value="1" />页</span>
    <input type="button" id="btn_jump" value="转到" onclick='GoToPageNum();'>
</div>

                    <uc:page runat="server" ID="page" />
                    </td>
                </tr>
                </table>
            </FooterTemplate>
        </asp:Repeater>