日期:2014-05-17  浏览次数:20495 次

asp.net数据绑定
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):  
姓名 科目信息
---- ---- ---- 
|李四 |语文74 |
|     |数学84 |
|     |物理94 |
————————
|张三 |语文74 |
|     |数学83 |
|     |物理93 |
————————就是一个名称对应右边的3个项,名字和课程都是数据库取出来的,我应该怎么做。
asp.net

------解决方案--------------------
这个用SQL解决的话,要行转列
http://www.cnblogs.com/IcefishBingqing/archive/2010/12/22/1913349.html
------解决方案--------------------
界面上的展示,不是交给sql来做的,如果想省事,用dev组件,他可以将相同单元格内容的合并
------解决方案--------------------
界面的东西   自己画下table就行了
------解决方案--------------------
用 JS 处理比较方便,假定你最终的 HTML 如下:

<table id="dataTable">
  <tr>
    <td class="name">张三</td>
    <td>语文</td>
    <td>78</td>
  </tr>
  <tr>
    <td class="name">张三</td>
    <td>数学</td>
    <td>92</td>
  </tr>
  <tr>
    <td class="name">张三</td>
    <td>英语</td>
    <td>88</td>
  </tr>
  ...
</table>


用 JQuery 如下:

var tdNames = $('#dataTable').find('td.name');
for(var i = 0, len = tdNames.length; i < len; ++i) {
  var td = tdNames.eq(i);
  if(i % 3 == 0)
    td.attr('colspan', 3);
  else
    td.remove(); 
}


随手写的,没测试,大致思路是这样的。