linqtosql 데이터 페이지 나누기 실현

11669 단어 LINQ
cs 코드
 
using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Configuration;



public partial class Default4 : System.Web.UI.Page

{

    int pagesize = 200;

    protected void Page_Load(object sender, EventArgs e)

    {





        if (!IsPostBack)

        {

            ViewState["PageIndex"] = 0;

            bind();

        }



      

    }

    protected void bind()

    {

        int pageindex=Convert.ToInt32(ViewState["PageIndex"]);

        DataClasses3DataContext dc = new DataClasses3DataContext(ConfigurationManager.ConnectionStrings["SoyErpConnectionString"].ConnectionString.ToString());

        var result = (from r in dc.MA_Lot

                      select r).Skip(pagesize * pageindex).Take(pagesize);

        GridView1.DataSource = result;

        GridView1.DataBind();

        btnFirst.Enabled = true;

        btnPre.Enabled = true;

        btnNext.Enabled = true;

        btnLast.Enabled = true;

        if (pageindex == 0)

        {

            btnFirst.Enabled = false;

            btnPre.Enabled = false;

        }

        if (pageindex == getCount()-1)

        {

            btnNext.Enabled = false;

            btnLast.Enabled = false;

        }

    }

    protected int getCount()

    {

        DataClasses3DataContext dc = new DataClasses3DataContext(ConfigurationManager.ConnectionStrings["SoyErpConnectionString"].ConnectionString.ToString());

        int s1 = dc.MA_Lot.Count();

        int s2 = s1 % pagesize == 0 ? 0 : 1;

        return s1 / pagesize + s2;

    }

    protected void btnFirst_Click(object sender, EventArgs e)

    {

        ViewState["PageIndex"] = 0;

        bind();

    }

    protected void btnPre_Click(object sender, EventArgs e)

    {

        ViewState["PageIndex"] = Convert.ToInt32(ViewState["PageIndex"])-1; 

        bind();

    }

    protected void btnNext_Click(object sender, EventArgs e)

    {

        ViewState["PageIndex"] = Convert.ToInt32(ViewState["PageIndex"]) + 1;

        bind();

    }

    protected void btnLast_Click(object sender, EventArgs e)

    {

        ViewState["PageIndex"] = getCount()-1;

        bind();

    }

}

aspx 프론트 데스크톱 코드
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default4.aspx.cs" Inherits="Default4" %>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

        <div>

        <asp:Button ID="btnFirst" runat="server" Text="  " onclick="btnFirst_Click" /> 

        <asp:Button ID="btnPre" runat="server" Text="   " onclick="btnPre_Click" />

        <asp:Button ID="btnNext" runat="server" Text="   " onclick="btnNext_Click" />

        <asp:Button ID="btnLast" runat="server" Text="  " onclick="btnLast_Click" /></div>

    <div>

        <asp:GridView ID="GridView1" runat="server">

        </asp:GridView>

    </div>



    </form>

</body>

</html>

좋은 웹페이지 즐겨찾기