困惑DataGridView单元格合并!
可能效果不太明显,就是要分产品的显示明显记录和汇总情况,其中涉及到单元的合并,并且是分产品的单元合并(如其中哦你4x虽然是相同的值,但是并不进行合并,英文产品不同。)
请高手帮我看看用DataGridView能做吗,如果不能用什么做,最好能给我个例子程序,我用的是VS2005项目是在WinForm下的。哪位好心发到我邮箱:zl194@126.com谢谢大家。发邮件时给个您的ID,我会来给分结贴的。
万分感谢!!!!!!!!!!
[解决办法]
第三方控件。。。
[解决办法]
困惑。。。6楼的头像让我很困惑
[解决办法]
public static void MRows(GridView GridView1, int cellNum)
{
int i = 0, rowSpanNum = 1;
while (i < GridView1.Rows.Count - 1)
{
GridViewRow gvr = GridView1.Rows[i];
for (++i; i < GridView1.Rows.Count; i++)
{
GridViewRow gvrNext = GridView1.Rows[i];
if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
{
gvrNext.Cells[cellNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}
if (i == GridView1.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
}
/// 根据条件列合并GridView列中相同的行
public static void MRows(GridView GridView1, int cellNum, int cellNum2)
{
int i = 0, rowSpanNum = 1;
while (i < GridView1.Rows.Count - 1)
{
GridViewRow gvr = GridView1.Rows[i];
for (++i; i < GridView1.Rows.Count; i++)
{
GridViewRow gvrNext = GridView1.Rows[i];
if (gvr.Cells[cellNum].Text + gvr.Cells[cellNum2].Text == gvrNext.Cells[cellNum].Text + gvrNext.Cells[cellNum2].Text)
{
gvrNext.Cells[cellNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}
if (i == GridView1.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
}
[解决办法]
吴老师给的是gridveiw,webform!
[解决办法]
你参考这个吧!
MergedDataGridView Control
[解决办法]
下载上面那个源代码,然后使用很简单,就是这样,这是vb.net的调用方式, c#稍微修改,就是语法问题:
' 在现有行后面添加一行
Dim rowPos As Integer = e.RowIndex + 1
Dim dv As DataView = Me.MergedDataGridView1.DataSource
Dim row As DataRow = dv.Table.NewRow()
dv.Table.Rows.InsertAt(row, rowPos)
' 得到合并后要显示的数据
Dim mergedRowText As New System.Text.StringBuilder
mergedRowText.AppendLine(Me.MergedDataGridView1("Description", e.RowIndex).Value.ToString)
mergedRowText.AppendLine(Me.MergedDataGridView1("Link", e.RowIndex).Value.ToString)
' 调用自定义datagridview的AddMergedRow方法,就可以了。
Me.MergedDataGridView1.AddMergedRow(rowPos, mergedRowText.ToString)