이 데이터 소스는 두 부분으로 나누어집니다. 하나는 데이터 클래스에서 데이터를 호출한 다음 이 데이터 소스에서 페이징 매개변수와 페이지 페이징 보조 제어를 작동하는 것입니다. 전면에는 페이지 넘기기, 드롭다운 목록 및 두 개의 LinkButton을 제어하는 세 개의 컨트롤이 있습니다!
클래스에서 데이터를 조작하는 더 많은 방법을 보려면 http://thcjp.cnblogs.com/archive/2006/06/18/428775.html을 참조하세요.
fill() 메서드 호출은 매우 간단하며 다시 바인딩해야 합니다. 페이지 어딘가에 fill()을 쓰세요. 하하! 하지만 예를 들어 페이지 넘기기 작업이 실행된 후에 작성해야 합니다!
다음은 db 클래스의 ds 메소드입니다.
공개 정적 DataTable ds(문자열 대기열)
{//SQL 정의 메시지가 로드된 데이터 테이블을 반환합니다.
OleDbConnection con = odb.con();
OleDbDataAdapter oda = new OleDbDataAdapter();
oda.SelectCommand=new OleDbCommand(que,con);
DataSet ds = 새로운 DataSet();
oda.Fill(ds,"thc");
return ds.Tables["thc"];
con.Close();
}다음 메소드에서 사용하는 데이터 소스는 위와 같습니다.
개인 공백 채우기()
{//페이지에 여러 바인딩이 있으므로 이를 수행하는 방법
//현재 페이지 색인을 저장하기 위해 여기에 숨겨진 레이블을 설정합니다.
int cup = Convert.ToInt32(pagelbl.Text);
PagedDataSource ps = new PagedDataSource();//NEW 페이징 데이터 소스
ps.DataSource = odb.ds("select * from guest order by id desc").DefaultView;//데이터 소스의 데이터 소스를 확인하기 위해 SQL 문을 보냅니다. 조금 복잡합니다. 하하.
ps.AllowPaging = true;//페이징 허용
ps.PageSize = 2;//페이지 수 설정
ps.CurrentPageIndex = 컵-1;
if (!IsPostBack)
{//페이지가 처음으로 로드되었는지 확인
for (int i = 1; i <= ps.PageCount; i++)
{//페이지 번호 루프아웃
pageddl.Items.Add(i.ToString());
}
}
//다음은 주로 페이지 위로 및 아래로 버튼 활성화 여부를 제어하는 것입니다.
pageup.Enabled = true;
pagedown.Enabled = true;
if(ps.IsFirstPage)
{//첫 페이지인 경우 이전 페이지 버튼을 사용할 수 없습니다.
pageup.Enabled = 거짓;
}
if(ps.IsLastPage)
{//마지막 페이지인 경우 다음 페이지 버튼을 사용할 수 없습니다.
페이지다운.활성화 = 거짓;
}
//페이지 번호 드롭다운 메뉴에서 현재 선택된 값을 설정합니다.
pageddl.SelectedItem.Text = cup.ToString();
//마지막으로 DataList에 바인딩될 수 있습니다.
DataList1.DataSource = ps;
DataList1.DataKeyField = "id";
DataList1.DataBind();
}
다음은 페이지 넘기기 이벤트 처리입니다.
protected void pageddl_SelectedIndexChanged(개체 전송자, EventArgs e)
{//페이지 번호 드롭다운 메뉴 이벤트
pagelbl.Text = pageddl.SelectedItem.Text.ToString();
채우다();
}
protected void pagedown_Click(객체 전송자, EventArgs e)
{//다음 페이지 이벤트
pagelbl.Text = Convert.ToString(Convert.ToInt32(pagelbl.Text)+1);
채우다();
}
protected void pageup_Click(객체 전송자, EventArgs e)
{//이전 페이지 이벤트
pagelbl.Text = Convert.ToString(Convert.ToInt32(pagelbl.Text)-1);
채우다();
}