目前的效果大概是id    name    sex   type    us
1      123     1     2      313-11
1      123     1     3      113-21
2      21      2     3      322-10
想实现的效果 是id     name   sex   type    us
1      123     1     2-3    313-11/113-21
2       21     2     3       322-10
应该能看懂吧。  求 实现     

解决方案 »

  1.   

    select * from 表 where name='@name'
    取出相同记录  然后拼接us 字段,最后插入
      

  2.   

    若ID是主键
    在取数据源时 先以id进行 group by 
      

  3.   

    可以在页面上 对gridview里的数据进行判断 如果有相同的值就合并 这样对lz可取吗?不过或许样式跟lz想要的有点不同
      

  4.   

    回 5楼:
      是不是我表达问题。  都说不到关键呢? 我是想让在 GRIDVIEW中的 有重复id的后几列 自加 起来 
     就是 没个id 只出现一次  
      

  5.   

    for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
    {GridView1.Rows[i]
    .......
    http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
    自己找把
      

  6.   

    #region 合并gridview中相同项
        public static void CellTogetherArry(int[] cellIndex, GridView gvTemp)
        {
            for (int x = 0; x < cellIndex.Length; x++)
            {
                int i = 0;
                int rowSpanNum = 1;
                while (i < gvTemp.Rows.Count - 1)
                {
                    GridViewRow gvr = gvTemp.Rows[i];
                    for (++i; i < gvTemp.Rows.Count; i++)
                    {
                        GridViewRow gvrNext = gvTemp.Rows[i];
                        if (gvr.Cells[cellIndex[x]].Text == gvrNext.Cells[cellIndex[x]].Text)
                        {                        if ((cellIndex[x] >= 1) &&
                                (gvr.Cells[cellIndex[x] - 1].Text != gvrNext.Cells[cellIndex[x] - 1].Text))
                            {
                                gvr.Cells[cellIndex[x]].RowSpan = rowSpanNum;
                                rowSpanNum = 1;
                                break;
                            }
                            else
                            {
                                gvrNext.Cells[cellIndex[x]].Visible = false;
                                rowSpanNum++;
                            }
                        }
                        else
                        {
                            gvr.Cells[cellIndex[x]].RowSpan = rowSpanNum;
                            rowSpanNum = 1;
                            break;
                        }
                        if (i == gvTemp.Rows.Count - 1)
                        {
                            gvr.Cells[cellIndex[x]].RowSpan = rowSpanNum;
                        }
                    }
                }
            }
        }    public static void GroupRows(GridView p_GridView, int[] p_ColumnsIndex)
        {
            int _Count = p_GridView.Rows.Count;
            string[] _TempText = new string[p_ColumnsIndex.Length];
            int[] _RowIndex = new int[p_ColumnsIndex.Length];
            for (int i = 0; i != _Count; i++)
            {
                string _CellText = string.Empty;
                for (int z = 0; z != p_ColumnsIndex.Length; z++)
                {
                    _CellText += p_GridView.Rows[i].Cells[p_ColumnsIndex[z]].Text;
                    if (_TempText[z] == _CellText)
                    {
                        p_GridView.Rows[i].Cells[p_ColumnsIndex[z]].Visible = false;
                        p_GridView.Rows[_RowIndex[z]].Cells[p_ColumnsIndex[z]].RowSpan++;
                    }
                    else
                    {
                        _RowIndex[z] = i;
                        _TempText[z] = _CellText;
                        p_GridView.Rows[_RowIndex[z]].Cells[p_ColumnsIndex[z]].RowSpan = 1;
                    }
                }
            }
        }
        #endregion调用: int[] cells = new int[] { 0, 1, 2, 3, 4 };
                    GroupRows(GridView1, cells);
    cells指要合并的单元格
      

  7.   

    首先,    select distinct 字段 from 表1 (取出不同的记录) 
    然后,    绑定gridview(id name sex type us),
    其中us数据来自select us from 表2 group by id 
    这样就可以
      

  8.   

    简单的说  我是想让 id相同的 重复列 都加在一块  
      id   name
      1     1  
      1     2 
    实现为
       id   name
       1     1-2
      

  9.   

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>测试</title>
        <script type="text/javascript">
            window.onload=function(){
                var tr = document.getElementById("GridView2").getElementsByTagName("tr");
                for(var i=0;i<tr.length;i++){
                    var td = tr[i].getElementsByTagName("td");
                    if(td.length>0){
                        var id = td[0].innerHTML;
                        var name = td[1].innerHTML;
                        for(var j=i+1;j<tr.length;j++){
                            var comparetd = tr[j].getElementsByTagName("td");
                            var compareid = comparetd[0].innerHTML;
                            var comparename = comparetd[1].innerHTML;
                            if(id==compareid){
                                name=name+"-"+comparename;
                                td[1].innerHTML=name;
                                document.getElementById("GridView2").getElementsByTagName("tbody")[0].removeChild(tr[j]);
                            }
                        }
                    }
                }
            }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" >
        <Columns>
            <asp:BoundField HeaderText="ID" DataField="ID" />
            <asp:BoundField HeaderText="Name" DataField="Name" />
        </Columns>
        </asp:GridView>
        </form>
    </body>
    </html> protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GridView2.DataSource = getTable();
                GridView2.DataBind();
            }
        }
        public DataTable getTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID", typeof(System.Int32));
            dt.Columns.Add("Name", typeof(System.String));
            DataRow row = dt.NewRow();
            row[0] = 1;
            row[1] = 1;
            dt.Rows.Add(row);
            DataRow row1 = dt.NewRow();
            row1[0] = 1;
            row1[1] = 2;
            dt.Rows.Add(row1);
            DataRow row2 = dt.NewRow();
            row2[0] = 2;
            row2[1] = 2;
            dt.Rows.Add(row2);
            DataRow row3 = dt.NewRow();
            row3[0] = 2;
            row3[1] = 3;
            dt.Rows.Add(row3);
            return dt;
        }
      

  10.   

    直接用sql语句解决吧~这样减少你的代码量