自定義Gridview控件的分頁功能

下面是分頁控件的關鍵代碼。本代碼的缺點是查詢語句受到了一定的限制。

 private DataTable Binddatatable(int PageNum)
    {
        sqlstring = "select CORPNUM,NickName,CORPNAME,OwnerName,ADDRESS,PhoneNum,USERNAME,MODIFYTIME,CORPCOUNT,CARCOUNT,DRIVERCOUNT from tbCorporationInfo order by MODIFYTIME ";
        this.labelpagenum.Text=PageNum.ToString();
        int page_num = Convert.ToInt32(this.labelpagenum.Text);
        Page_counttotal = SQLHelp.getpagecount(sqlstring);
        DataTable datatable = SQLHelp.getdatatable(sqlstring, page_num, Pagesize, Page_counttotal);
        int pagecount = Getpagecount(Page_counttotal);
        this.labelpagecount.Text = pagecount.ToString();
        return datatable;
    }
    private int Getpagecount(int page_count)
    {
       
        int num=0;
        int totalnum = page_count;
        if (totalnum % Pagesize == 0)
        {
            num = totalnum / Pagesize;
        }
        else
        {
            num = totalnum / Pagesize + 1;
        }
        return num;
    }
    protected void btnnext_Click(object sender, EventArgs e)
    {
        txtboxturn.Text = "";
        int num = Convert.ToInt32(this.labelpagenum.Text) + 1;
        if (num <= Convert.ToInt32(this.labelpagecount.Text))
        {
            DataTable dt = Binddatatable(num);
            if (dt != null && dt.Rows.Count > 0)
            {
                this.GridView1.DataSource = dt;
                this.GridView1.DataBind();
            }
        }
    }
    protected void btnturn_Click(object sender, EventArgs e)
    {       
        int num = Convert.ToInt32(this.txtboxturn.Text);
        if (num <= Convert.ToInt32(this.labelpagecount.Text))
        {
            DataTable dt = Binddatatable(num);
            if (dt != null && dt.Rows.Count > 0)
            {
                this.GridView1.DataSource = dt;
                this.GridView1.DataBind();
            }
        }
    }
    protected void btnpre_Click(object sender, EventArgs e)
    {
        txtboxturn.Text = "";
        int num = Convert.ToInt32(this.labelpagenum.Text) - 1;
        if (num >= 1)
        {
            DataTable dt = Binddatatable(num);
            if (dt != null && dt.Rows.Count > 0)
            {
                this.GridView1.DataSource = dt;
                this.GridView1.DataBind();
            }
        }
    }
    protected void btnfirst_Click(object sender, EventArgs e)
    {
        txtboxturn.Text = "";
        int num = 1;
        DataTable dt = Binddatatable(num);
        if (dt != null && dt.Rows.Count > 0)
        {
            this.GridView1.DataSource = dt;
            this.GridView1.DataBind();
        }     
          
    }
    protected void btnlast_Click(object sender, EventArgs e)
    {
        txtboxturn.Text = "";
        int num = Convert.ToInt32(this.labelpagecount.Text);
        DataTable dt = Binddatatable(num);
        if (dt != null && dt.Rows.Count > 0)
        {
            this.GridView1.DataSource = dt;
            this.GridView1.DataBind();
        }
    }

 

 

public static DataTable getdatatable(string str,int pagenum,int pagesize,int page_totalcount)
        {
            string page_numfrom = "";
            if (pagenum > (page_totalcount / pagesize))
            {
                int i = page_totalcount % pagesize;
                page_numfrom = i.ToString();
            }
            else
            {
                page_numfrom = pagesize.ToString();
            }
            int Page_numto = pagenum * pagesize;
            string page_numto=Page_numto.ToString();
            string str_select = str.Replace("select", "");
            string strreplacefrom=str.ToLower().Replace("from","/");
            string[] str_out = strreplacefrom.Split('/');
            string strreplaceorder = str.ToLower().Replace("order by","/");
            string[] str_order = strreplaceorder.Split('/');
            string str_order_true = str_order[1];
            string str_outtrue = str_out[0];
            str_outtrue = str_outtrue.Replace("select", "");
            string str_select_out = str_select.Replace("from", "/");
            string[] str_select_array = str_select_out.Split('/');
            string str_select_first = str_select_array[0];
            string str_last = "select top "
                + page_numfrom + str_select_first
                + " from (" + "select top " + page_numto
                + str_select + ")" + " AS derivedtbl_1 order by"
                + str_order_true+" desc";
            DataSet ds = Getdatset_string(str_last, connstring);
            DataTable datatable = ds.Tables[0];
            return datatable;      

        }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章