グリッドビューでデータを表示する必要があります。 GridView with merged cells
、元のデータは、データベースから来たフォーマットを下回っている:以下に定義された形式でグリッドビューを準備するために私を助けてください
動的にこの作業を行うための最善の方法を見つけるために私を助けてくださいと効率的に
グリッドビューでデータを表示する必要があります。 GridView with merged cells
、元のデータは、データベースから来たフォーマットを下回っている:以下に定義された形式でグリッドビューを準備するために私を助けてください
動的にこの作業を行うための最善の方法を見つけるために私を助けてくださいと効率的に
RowSpan
を使用する必要があります。
:当該
https://sites.google.com/site/learning6329/asp-net/gridview-merge-cells
画報例として:
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:
はそれのために以下のコードを参照してください
おかげで、このコードは正確に動作します私の要求に従って – himanshu
いつでもようこそ。 – Freelancer
私が尋ねる必要があるもう1つは、グリッドビューのすべての列ではなく、修正列のこのセルマージを制限する方法があるかどうかです。例えば私が問題にしてくれたサンプルテーブルのように、セルマージがRemarksフィールドの列に適用されないように制限を実装します。 – 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列目に1にマージします –
の上に書かれた外forloop内の別の「forloop」を使用することができますが、あなたのコードを表示します。..あなたの助けのため –