Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GridView C中的拆分单元#_C#_Asp.net - Fatal编程技术网

C# GridView C中的拆分单元#

C# GridView C中的拆分单元#,c#,asp.net,C#,Asp.net,我从数据库中提取数据并在GridView中显示 C#代码 GridView1.DataSource=ds GridView.DataBind() 来自数据库的数据在第1列中的两行具有相同的名称,但第2列和第3列具有唯一的值,它在网格视图中显示为: 但是,我想将其显示为: 有几种方法可以做到这一点,但没有一种是容易的 最简单的可能是: 关闭第一列中的顶部和底部轴网线。 在页面级别声明与column1类型相同的变量。 在gridviewrowdataboundevent内部,将column1中的值

我从数据库中提取数据并在GridView中显示

C#代码

GridView1.DataSource=ds

GridView.DataBind()

来自数据库的数据在第1列中的两行具有相同的名称,但第2列和第3列具有唯一的值,它在网格视图中显示为:

但是,我想将其显示为:


有几种方法可以做到这一点,但没有一种是容易的

最简单的可能是:

关闭第一列中的顶部和底部轴网线。 在页面级别声明与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