none
【ASP.NET】GridView 合并单元格问题 RRS feed

  • 问题

  • 代码如下:

     #region 合并单元格 合并某一行的所有列
        ///  <summary> 
        ///  合并GridView中某行相同信息的行(单元格)
        ///  </summary> 
        ///  <param  name="GridView1">GridView对象</param> 
        ///  <param  name="cellNum">需要合并的行</param>
        public static void GroupRow(GridView GridView1, int rows)
        {
            TableCell oldTc = GridView1.Rows[rows].Cells[0];//合并之后需要显示的文本列
            for (int i = 1; i < GridView1.Rows[rows].Cells.Count; i++) //循环该行的列数
            {
                TableCell tc = GridView1.Rows[rows].Cells[i];   //列从1开始,赋值给tc
                if (oldTc.Text == tc.Text )
                {
                    tc.Visible = false; //隐藏这列
                    if (oldTc.ColumnSpan == 0 )
                    {
                        oldTc.ColumnSpan = 1;
                    }
                    oldTc.ColumnSpan++;
                    oldTc.VerticalAlign = VerticalAlign.Middle;//居中显示
                    oldTc.Font.Bold = true;
                }
                else
                {
                    oldTc = tc;
                }
            }
        }
        #endregion

    以上三句粗体部分不明白,以我自己的理解是这样的 oldTc是合并之后的单元格, tc是除了oldTc的单元格,让我想不明白的是,无论怎样,oldTc.Text也不会tc.Text相等啊?除非同一行的单元格中有相同的数据

    其次是,感觉oldTc.ColumnSpan == 0 永远不能是0    还有oldTc.ColumnSpan++的作用是什么?还请高手帮忙指点一下,谢谢!

    2010年7月12日 5:28

全部回复

  • oldTc.ColumnSpan:合并一行相同的内容,因为一行有若干个列啊,合并相同单元格等于是让一个单元格占据与其内部内容相同的几个单元格的内容,记得学习HTML的时候:

    <tr>

      <td ColSpan=XXX>Value Here</td>

    </tr>

    默认ColumnSpan是0的。

    自然oldTc.ColumnSpan++是合并单元格的(扩大Colspan中的单元格列占据位置,同一行)

    2010年7月13日 2:42
  • oldTc.ColumnSpan:合并一行相同的内容,因为一行有若干个列啊,合并相同单元格等于是让一个单元格占据与其内部内容相同的几个单元格的内容,记得学习HTML的时候:

    <tr>

      <td ColSpan=XXX>Value Here</td>

    </tr>

    默认ColumnSpan是0的。

    自然oldTc.ColumnSpan++是合并单元格的(扩大Colspan中的单元格列占据位置,同一行)

    能否告诉我 if (oldTc.Text == tc.Text ) 为什么总是相等呢?
    2010年7月14日 1:03