C# GridView 그룹화를 구현하는 방법은 무엇입니까?
저도 비슷한 테스트를 겪었고 도움을 드릴 수 있습니다.
먼저 바인딩 소스와 바인딩Navigator 컨트롤을 이해해야 합니다.
여기에서는 타사 페이징 컨트롤을 사용하지 않는 것에 대해 이야기하고 있습니다.
구성은 다음과 같습니다
m_cardDataSet.Tables[0]는 초기 쿼리의 모든 결과 정보를 텍스트로 표현합니다
제공해 드립니다 두 개의 함수를 사용하여 작성했습니다. pageSize = 50; //각 페이지에 표시되는 행 수
int nMax = 0; //총 레코드 수
int pageCount = 0; //페이지 수
int pageCurrent = 0;//현재 페이지 번호
int nCurrent = 0;//현재 행 번호
//페이징 초기화 정보 - 전달된 테이블 정보 기반
p>public void InitDataTable(DataTable p_dataTable)
{
nMax = p_dataTable.Rows.Count;
pageCount = (nMax / pageSize);
if (nMax % pageSize > 0)
{
pageCount++;
}
pageCurrent = 1 ;
nCurrent = 0;
LoadData(p_dataTable);
}
//페이지에 페이징 정보 로드
public void LoadData(DataTable p_dataTable)
{
int nStartPos = 0;
int nEndPos = 0;
DataTable deTemp = new DataTable();
deTemp = p_dataTable.Clone();
if (pageCurrent == pageCount)
{
nEndPos = nMax;
}
else
{
nEndPos = pageSize * pageCurrent;
}
nStartPos = nCurrent;
pageCountNumber.Text = "***" + pageCount.ToString() + "페이지" ;
currentPage.Text = "페이지" + Convert.ToString(pageCurrent) + "페이지";
if (p_dataTable.Rows.Count > 0)
{
for (int i = nStartPos; i < nEndPos; i++)
{
deTemp.Im
portRow(p_dataTable.Rows[i]);
nCurrent++;
}
}
bdsInfo.DataSource = deTemp; p> p>
bdnInfo.BindingSource = bdsInfo;
carDataDgv.DataSource = bdsInfo;
}
//bindingNavigator? >
private void bdnInfo_ItemClicked(개체 전송자, ToolStripItemClickedEventArgs e)
{
if (e.ClickedItem.Text == "이전 페이지")
{
pageCurrent--;
if (pageCurrent <= 0)
{
MessageBox.Show("이미 한 페이지입니다. , 다음 페이지를 클릭하세요!");
return;
}
else
{
nCurrent = pageSize * (pageCurrent - 1);
}
LoadData(m_cardDataSet.Tables[0]);
}
if (e.ClickedItem.Text == "다음 페이지")
{
pageCurrent++;
if (pageCurrent > pageCount)
{
MessageBox.Show("마지막 페이지입니다. 이전 페이지를 클릭하세요!");
return;
}
else
{
nCurrent = pageSize * (pageCurrent - 1);
}
LoadData(m_cardDataSet .Tables[ 0]);
}
if (e.ClickedItem.Text == "Home")
{
pageCurrent=1 ;
nCurrent = pageSize * (pageCurrent - 1);
LoadData(m_cardDataSet.Tables[0]);
}
if (e.ClickedItem.Text == "마지막 페이지")
{
pageCurrent = pageCount;
if (pageCurrent > 0)
{
nCurrent = pageSize * (pageCurrent - 1);
}
else
{
nCurrent = 0;
}
LoadData(m_cardDataSet. 테이블[0]);
}
}