我这个GridView 总共有五列,其中第一、二、四列都绑定在同一个表的三个字段上,大概有十几个数据项(即十几行);而第三列(c)是绑定在另外一个表的某个字段上的一个数据项上,就仅仅一行,为了照顾格式,要使这个项在上下方向跨越所有行,让它一列从上到底;最后一列第五列(e)要位于GridView 的底端,要绑定在另外一个表的某个字段上的一个数据项上,就仅仅一行一列,横跨整个表,请问各路豪杰,应该怎么办?
a   b   c   d
*   *   *   *
------- *  ---
*   *   *   *
------- *  ---
*   *   *   *
--------------
e
--------------
**************

解决方案 »

  1.   

    自定义吧.这样GridView不能实现的.
      

  2.   

    http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspxGridView合并表头多重表头无错完美版(以合并3列3行举例)
      

  3.   

    e 列怎么躺到GridView底部编程行了哦
      

  4.   

    // GridView DataBound 事件
        protected void GridView1_DataBound(object sender, EventArgs e)
        {
            // 第一行第三列跨行
            GridView1.Rows[0].Cells[2].RowSpan = GridView1.Rows.Count -1;
            // 其他行第三列合并
            for (int i = 1; i < GridView1.Rows.Count - 1; i++) {
                GridView1.Rows[i].Cells.RemoveAt(2);
            }        // 最后一行跨列
            GridView1.Rows[GridView1.Rows.Count - 1].Cells[0].ColumnSpan = GridView1.Columns.Count;
            // 其他列合并
            for (int i = 1; i < GridView1.Columns.Count; i++) {            
                GridView1.Rows[GridView1.Rows.Count - 1].Cells.RemoveAt(GridView1.Rows[GridView1.Rows.Count - 1].Cells.Count - 1);
            }
        }
      

  5.   

    GridView1_DataBound
    =====================
    GridView1_RowDataBound
      

  6.   

    @高歌,哈哈,这次我就用 DataBound ^_^
      

  7.   

    晓风残月兄:我用了你的方法,可是只能解决a、b、c、d 列的问题,e列不受影响,却让a 列的最后一行的数据横跨整个表。嘿嘿……
      

  8.   

    我用了你的方法,可是只能解决a、b、c、d 列的问题,e列不受影响,却让a 列的最后一行的数据横跨整个表。嘿嘿……=========
    我上面就问你了 “e 列怎么躺到GridView底部编程行了哦”
    事实上,我没有看懂你的意思,e “列”怎么变成了 “行” ???我只是按我的理解实现了,如果你看懂了,很简单就可以消化吸收了
      

  9.   

    想了想,也许这样是你想要的,   
        // GridView DataBound 事件
        protected void GridView1_DataBound(object sender, EventArgs e)
        {
            // 第一行第三列跨行
            GridView1.Rows[0].Cells[2].RowSpan = GridView1.Rows.Count;
            // 其他行第三列合并
            for (int i = 1; i < GridView1.Rows.Count; i++) {
                GridView1.Rows[i].Cells.RemoveAt(2);
            }
        }
    // GridView RowDataBound 事件
        protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Footer) {
                GridViewRow insertedRow = new GridViewRow(GridView1.Rows.Count, GridView1.Rows.Count, DataControlRowType.DataRow, DataControlRowState.Normal);
                TableCell cell = new TableCell();
                cell.Text = "hello"; // DataTable.Rows[0][第5列].ToString();
                cell.ColumnSpan = GridView1.Columns.Count;
                insertedRow.Cells.Add(cell);            GridView1.Controls[0].Controls.AddAt(GridView1.Controls[0].Controls.Count - 1, insertedRow);
            }
        }
      

  10.   

    在他的RowStyle属性的Font属性的Wrap=true
      

  11.   

    晓风残月兄:非常感谢你的帮忙;我在GridView RowDataBound 事件里添加你给的代码,惊喜地发现实现了部分功能( e列跑到了最低下,但是e列中的唯一一项值,即*号没有显示出来),由于我的水平有限,从insertedRow.Cells.Add(cell);就开始看不懂了^_^,至于e为什么要到表底部,完全是样式上的需要,呵呵……
    -------------------------
    |  a  |  b  |  c  |  d  |
    ------------------------- 
    |  *  |  *  |  *  |  *  |
    -------------     -------
    |  *  |  *  |  *  |  *  |
    -------------     ------- 
    |  *  |  *  |  *  |  *  |
    -------------------------
    |  e                    |
    ------------------------- 
    |  ***********          |
    -------------------------