일부 열에 병합 된 행이있는 표보기로 데이터를 표시해야합니다. 병합 된 셀이있는 GridView
을 그리고 원래 데이터는 데이터베이스에서 제공되는 형식으로 아래 : 아래에 정의 된 형식의 그리드 뷰를 준비 도와주세요
동적으로이 작업을 수행하기위한 최선의 방법을 찾아 도와주세요 및 효율적으로
일부 열에 병합 된 행이있는 표보기로 데이터를 표시해야합니다. 병합 된 셀이있는 GridView
을 그리고 원래 데이터는 데이터베이스에서 제공되는 형식으로 아래 : 아래에 정의 된 형식의 그리드 뷰를 준비 도와주세요
동적으로이 작업을 수행하기위한 최선의 방법을 찾아 도와주세요 및 효율적으로
RowSpan
을 사용해야합니다.
것은 그것을 위해 다음 코드를 참조하십시오
protected void GridView1_DataBound1(object sender, EventArgs e)
{
for (int rowIndex = GridView1.Rows.Count - 2;
rowIndex >= 0; rowIndex--)
{
GridViewRow gvRow = GridView1.Rows[rowIndex];
GridViewRow gvPreviousRow = GridView1.Rows[rowIndex + 1];
for (int cellCount = 0; cellCount < gvRow.Cells.Count;
cellCount++)
{
if (gvRow.Cells[cellCount].Text ==
gvPreviousRow.Cells[cellCount].Text)
{
if (gvPreviousRow.Cells[cellCount].RowSpan < 2)
{
gvRow.Cells[cellCount].RowSpan = 2;
}
else
{
gvRow.Cells[cellCount].RowSpan =
gvPreviousRow.Cells[cellCount].RowSpan + 1;
}
gvPreviousRow.Cells[cellCount].Visible = false;
}
}
}
referance에 :
https://sites.google.com/site/learning6329/asp-net/gridview-merge-cells
질문에 화보 예를 들어 :
감사를 표시 위에 기록 된 외부 forloop 내에서 또 다른 "forloop"를 사용할 수 있습니다,이 코드는 정확히 작동 내 요구 사항에 따라. – himanshu
언제나 환영합니다. – Freelancer
한 가지 더 질문해야 할 것은이 셀을 격자보기의 모든 열이 아닌 수정 열에 병합하도록 제한하는 방법이 있는지 여부입니다. 예를 들어 필자가 제공 한 샘플 테이블 에서처럼 셀 병합이 설명 필드 열에 적용되지 않도록 제한을 구현해야합니다. – himanshu
첫 번째 열의 행 셀을 병합하는 가장 간단한 방법은 다음과 같습니다. For 루프는 항상 역순으로 반복됩니다.
protected void GridView1_DataBound(object sender, EventArgs e)
{
int RowSpan = 2;
for (int i = GridView1.Rows.Count-2; i >=0 ;i--)
{
GridViewRow currRow = GridView1.Rows[i];
GridViewRow prevRow = GridView1.Rows[i+1];
if (currRow.Cells[0].Text == prevRow.Cells[0].Text)
{
currRow.Cells[0].RowSpan = RowSpan;
prevRow.Cells[0].Visible = false;
RowSpan += 1;
}
else
RowSpan = 2;
}
}
당신이 유사하게 모든 열의 행 셀을 병합하려는 경우
이 솔루션은 나를 위해 완벽하게 작동, 3 행을 1로 첫 번째 열에 병합 –
당신의 코드 .. 도와 –