그림과 같이
새로 고침 없는 페이징으로 이 문제를 해결할 수 있습니다. 다음으로 다음 페이지를 클릭하여 현재 대부분의 웹사이트에는 새로 고침이 없습니다. 페이징.
소스 코드는 다음과 같습니다(한 페이지를 사용하여 10개의 레코드를 표시합니다).
4개의 파일이 필요합니다
1개의 엔터티 클래스 파일 CategoryInfoModel.cs
1개의 SqlHelper SQLHelper.cs
1개의 AJAX 서버 측 처리 프로그램 PagedService.ashx
클라이언트가 WSXFY.htm
CategoryInfoModel.cs 및 SQLHelper.cs를 호출합니다.
PagedService.ashx라는 파일은 누구나 알 것입니다. 코드는 다음과 같습니다
System.Web을 사용합니다. Script.Serialization;
public void ProcessRequest(HttpContext context )
{
context.Response.ContentType = "text/plain";
string strAction = context.Request["Action"]; >//페이지 번호 가져오기
if (strAction = "GetPageCount")
{
string strSQL = "SELECT COUNT(*) FROM CategoryInfo"
int intRecordCount = SqlHelper.ExecuteScalar(strSQL );
int intPageCount = intRecordCount / 10;
if (intRecordCount % 10 != 0)
{
intPageCount
}
context.Response.Write(intPageCount); 🎜>}//각 페이지의 데이터 가져오기
else if (strAction == "GetPageData")
{
string strPageNum = context.Request["PageNum"]
int intPageNum = Convert .ToInt32(strPageNum);
int intStartRowIndex = (intPageNum - 1 ) * 10 1;
int intEndRowIndex = (intPageNum) * 10 1;string strSQL = "SELECT ID,CategoryName, Row_Number() OVER(ORDER BY ID ASC) AS rownum FROM CategoryInfo) AS t";
strSQL = " WHERE t.rownum >= " intStartRowIndex " AND t.rownum <= " intEndRowIndex;
DataSet ds = new DataSet();
SqlConnection conn = SqlHelper.GetConnection( ; 0; i < ds.Tables[0].Rows.Count; i )
{
CategoryInfoModel Categoryinfo = new CategoryInfoModel();
categoryinfo.CategoryInfoID = Convert.ToInt32(ds.Tables[0] .Rows[i]["ID"]);
categoryinfo.CategoryName = ds.Tables[0].Rows[i]["CategoryName "].ToString();
categoryinfo_list.Add(categoryinfo);
}
JavaScriptSerializer jss = new JavaScriptSerializer();
context.Response.Write(jss.Serialize(categoryinfo_list));/ /엔터티 컬렉션을 자바스크립트 객체로 직렬화
}
}
WSXFY.htm 코드는 다음과 같습니다
복사 코드