C# GridView C中的拆分单元#
我从数据库中提取数据并在GridView中显示 C#代码 GridView1.DataSource=ds GridView.DataBind() 来自数据库的数据在第1列中的两行具有相同的名称,但第2列和第3列具有唯一的值,它在网格视图中显示为: 但是,我想将其显示为:C# GridView C中的拆分单元#,c#,asp.net,C#,Asp.net,我从数据库中提取数据并在GridView中显示 C#代码 GridView1.DataSource=ds GridView.DataBind() 来自数据库的数据在第1列中的两行具有相同的名称,但第2列和第3列具有唯一的值,它在网格视图中显示为: 但是,我想将其显示为: 有几种方法可以做到这一点,但没有一种是容易的 最简单的可能是: 关闭第一列中的顶部和底部轴网线。 在页面级别声明与column1类型相同的变量。 在gridviewrowdataboundevent内部,将column1中的值
有几种方法可以做到这一点,但没有一种是容易的 最简单的可能是: 关闭第一列中的顶部和底部轴网线。 在页面级别声明与column1类型相同的变量。 在gridviewrowdataboundevent内部,将column1中的值与变量中的值进行比较。如果它们不相同,请启用相应的轴网线,否则将其禁用
这都是伪代码。您需要提供具体的细节等。有几种方法可以做到这一点,但没有一种方法是简单的 最简单的可能是: 关闭第一列中的顶部和底部轴网线。 在页面级别声明与column1类型相同的变量。 在gridviewrowdataboundevent内部,将column1中的值与变量中的值进行比较。如果它们不相同,请启用相应的轴网线,否则将其禁用
这都是伪代码。您需要提供具体的细节等。您必须使用行范围来实现它。这是一行的合并。不是争吵 请参阅以下代码:
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;
}
}
}
受保护的void GridView1\u数据边界1(对象发送方,事件参数e)
{
对于(int rowIndex=GridView1.Rows.Count-2;rowIndex>=0;rowIndex--)
{
GridViewRow gvRow=GridView1.Rows[rowIndex];
GridViewRow gvPreviousRow=GridView1.Rows[rowIndex+1];
对于(int-cellCount=0;cellCount
您必须使用行跨度来实现它。它是行的合并,而不是行的拆分
请参阅以下代码:
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;
}
}
}
受保护的void GridView1\u数据边界1(对象发送方,事件参数e)
{
对于(int rowIndex=GridView1.Rows.Count-2;rowIndex>=0;rowIndex--)
{
GridViewRow gvRow=GridView1.Rows[rowIndex];
GridViewRow gvPreviousRow=GridView1.Rows[rowIndex+1];
对于(int-cellCount=0;cellCount
您必须制作嵌套表(IMO相当混乱)。请参阅下面的答案,如果它对您有效,请接受@Ankit您必须制作嵌套表(IMO相当混乱)。如果它对您有效,请参阅下面的答案并接受@Ankit