# PagingManager (Control)

## 정의

* 네임스페이스: GST.PlusWin6.Controls
* 어셈블리: GST.PlusWin6.Controls.dll

## 설명

* GridControl에 페이징 방식으로 데이터 조회 기능을 구현할 때 사용되는 컨트롤
* \[[RetrieveHelper](https://youngtae.gitbook.io/pluswin6/retrievehelper-paging-example)] 클래스 기능을 사용하여 간단하게 적용 (예제 참고)

<figure><img src="https://1258057271-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FN7mAtb6b5ngySagoioAF%2Fuploads%2FhpjT4VdVHYakm9PM8sNj%2Fimage.png?alt=media&#x26;token=7b1a434e-f67c-49e4-aa4c-9f620c6891a0" alt=""><figcaption></figcaption></figure>

* ① : 페이지 번호 영역 (현재 페이지는 진하게 표현)
* ② : 현재 페이지와 전체 페이지 및 전체 데이터 수를 나타냄
* ③ : 왼쪽부터 처음 페이지, 이전 페이지, 다음 페이지, 끝 페이지로 이동하는 버튼
* ④ : 특정 페이지 번호를 입력하고 바로 이동하는 기능

## **Event**

### PageChanged

* 페이지가 변경된 이후 호출되는 이벤트

```csharp
public event PageChangedEventHandler PageChanged;
```

## **Property**

### TotalRowCount

* 전체 데이터 건 수
* Setter에 의해 페이지 정보 영역( ①, ② )을 새로 그림

```csharp
public int TotalRowCount { get; set; }
```

### PageSize

* 한 페이지의 크기 (페이지에 표현될 레코드의 수)
* Setter에 의해 페이지 정보 영역( ①, ② )을 새로 그림

```csharp
public int PageSize { get; set; }
```

### OldPage

* PageChanged 이벤트가 발생하기 전 페이지의 번호

```csharp
public int OldPage { get; set; }
```

### CurrentPage

* 현재 페이지 번호
* 값 변경 시 PageChanged 이벤트 호출
* Setter에 의해 페이지 정보 영역( ①, ② )을 새로 그림

```csharp
public int CurrentPage { get; set; }
```

### TotalPages

* 전체 페이지 수

```csharp
public int TotalPages { get; }
```

### View

* PagingManager 초기화 시 할당된 ColumnView 타입의 개체

```csharp
public ColumnView View { get; }
```

### PageChanging

* 페이지가 변경 중인지의 여부
* CurrentPage 속성 값을 입력하고 PageChanged 이벤트 완료되기 전까지 `true` 상태 값을 가짐

```csharp
public bool PageChanging { get; }
```

## Method

### Init

* PagingManager 초기화

```csharp
public void Init(ColumnView view, int pageSize = 1000);
```

### Update

* 페이지 정보 영역( ①, ② )을 새로 그림
* Parameters
  * `int page` : 활성화할 페이지 번호
  * `int tatalRowCount` : 전체 데이터 건 수

```csharp
public void Update(int page, int totalRowCount);
```
