using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Data.SqlClient; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace SampleCS { /// /// 고급페이징테스트에 대한 요약 설명입니다. /// public class 고급페이징테스트 : System.Web.UI.Page { protected System.Web.UI.WebControls.DataGrid DataGrid1; protected int intPage = 0;//고급2 : 몇번째 페이지를 보여줄건지 private void Page_Load(object sender, System.EventArgs e) { if(!Page.IsPostBack) { this.DataGrid1.VirtualItemCount = 10000;//고급1 ReadData(); } } private void ReadData() { SqlConnection objCon = new SqlConnection( "server=(local);database=Sample;uid=Sample;pwd=Sample"); objCon.Open(); SqlCommand objCmd = new SqlCommand(); objCmd.Connection = objCon; //30 -> " + 변수 + " objCmd.CommandText = "Select Top 10 Num From PagingTest Where Num Not In (Select Top " + intPage*10 + " Num From PagingTest Order By Num Desc) Order By Num Desc";//고급3 objCmd.CommandType = CommandType.Text; SqlDataAdapter objDa = new SqlDataAdapter(); objDa.SelectCommand = objCmd; DataSet objDs = new DataSet(); objDa.Fill(objDs, "PagingTest"); this.DataGrid1.DataSource = objDs; this.DataGrid1.DataBind(); } #region Web Form 디자이너에서 생성한 코드 override protected void OnInit(EventArgs e) { // // CODEGEN: 이 호출은 ASP.NET Web Form 디자이너에 필요합니다. // InitializeComponent(); base.OnInit(e); } /// /// 디자이너 지원에 필요한 메서드입니다. /// 이 메서드의 내용을 코드 편집기로 수정하지 마십시오. /// private void InitializeComponent() { this.DataGrid1.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DataGrid1_PageIndexChanged); this.Load += new System.EventHandler(this.Page_Load); } #endregion private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { intPage = e.NewPageIndex;//고급4 this.DataGrid1.CurrentPageIndex = e.NewPageIndex; ReadData(); } } }