如何用Gridview实现以下的页面效果?

山林大 2009-08-16 11:55:28
我想做一个关于项目成员得分的页面,要实现以下的效果:

序号 姓名 总得分

- 1 张三 180
得分一: 分 得分时间:
得分二: 分 得分时间:
得分三: 分 得分时间:
… … … …
+ 2 李四 160
+ 3 王五 150
… … … …

具体说明:我的数据库里有一张项目成员得分表,包含字段:ID、项目ID、姓名(本来是人员ID的,这里就直接用姓名来简便些)、得分、得分时间,其中ID为主键。一个项目中的每个成员可以多次得分,我要的效果是列出每个成员的总得分,如果得分表里没有记录则什么都不显示,有的话就出现上面那种效果,点击“+”后展开能看到该成员每次的得分情况(加起来就是总得分),点击“-”后折叠起来,有下划线的是从数据库读取的。
各路大虾快点来帮看看啊,感激不尽,不用Gridview也行,只要能实现我要的效果,都给分!!!
...全文
509 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
shicsheng 2011-01-22
  • 打赏
  • 举报
回复
winform实现有没有?
legu1 2010-02-25
  • 打赏
  • 举报
回复
很不错,标记一下,收藏了
山林大 2009-08-19
  • 打赏
  • 举报
回复
谢谢楼上的,学习了
山林大 2009-08-17
  • 打赏
  • 举报
回复
能不能给出代码啊,你这么说很抽象啊……囧
怫悰 2009-08-17
  • 打赏
  • 举报
回复
冒泡

用repeater最方便
zl194 2009-08-17
  • 打赏
  • 举报
回复
你只要在DataSet中插入的是主子关系的两个表,自然就是这个样子的.
阿非 2009-08-17
  • 打赏
  • 举报
回复

protected DataView GetScoreDataSource(string Name)
{
int PID = 1;
using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=root;database=Test"))
{
SqlDataAdapter sda = new SqlDataAdapter("select [Score],[ScoreTime] from [projectScoreInfo] where [Name]=@Name and [PID]=@PID ", con);
sda.SelectCommand.Parameters.Add(new SqlParameter("@Name", Name));
sda.SelectCommand.Parameters.Add(new SqlParameter("@PID", PID));
DataSet ds = new DataSet();
sda.Fill(ds, "ScoreInfo");
if (ds.Tables.Contains("ScoreInfo"))
{
return ds.Tables["ScoreInfo"].DefaultView;
}
return null;
}//end using block
}



protected void Page_Load(object sender, EventArgs e)
{
int PID = 1;
using (SqlConnection con = new SqlConnection("server=.;uid=sa;pwd=root;database=Test"))
{
SqlDataAdapter sda = new SqlDataAdapter("select [PID],[Name],SUM([Score]) [SumScore] from [projectScoreInfo] where [PID]=@PID group by [Name],[PID] order by [SumScore] desc", con);
sda.SelectCommand.Parameters.Add(new SqlParameter("@PID", PID));
DataSet ds = new DataSet();
sda.Fill(ds, "NameGroupInfo");
if (ds.Tables.Contains("NameGroupInfo"))
{
rpName.DataSource = ds.Tables["NameGroupInfo"].DefaultView;
rpName.DataBind();
}
}//end using block
}
阿非 2009-08-17
  • 打赏
  • 举报
回复

create table projectScoreInfo
(
[ID] int identity(1,1) primary key,
[PID] int ,
[Name] varchar(20),
[Score] int ,
[ScoreTime] datetime
)

insert into projectScoreInfo ([PID],[Name],[Score],[ScoreTime]) select 1,'张三',60,'2009-08-14'
union all select 1,'张三',70,'2009-08-15'
union all select 2,'张三',75,'2009-08-16'
union all select 3,'张三',72,'2009-08-15'
union all select 1,'张三',80,'2009-08-17'
union all select 1,'李四',80,'2009-08-15'
union all select 1,'李四',85,'2009-08-17'
union all select 2,'李四',75,'2009-08-14'
union all select 3,'李四',90,'2009-08-16'
union all select 1,'王二',77,'2009-08-15'
union all select 1,'王二',79,'2009-08-16'
union all select 1,'王二',69,'2009-08-17'
union all select 2,'王二',80,'2009-08-15'
union all select 3,'王二',82,'2009-08-17'

select * from [projectScoreInfo]


<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<style type="text/css">

   a { text-decoration: none;color: blue}
  
  

</style>

<script>
function show(obj,id)
{
var el=document.getElementById(id);
if(obj.value=='1')
{
obj.innerText='一';
obj.value='0';
el.style.display='';
}
else
{
obj.innerText='+';
obj.value='1';
el.style.display='none';
}

}
</script>

</head>
<body>
<form id="form1" runat="server">
<asp:Repeater ID="rpName" runat="server">
<HeaderTemplate>
<table>
<thead>
<tr>
<td>
</td>
<td width="30%" align="center">
序号</td>
<td width="30%" align="center">
姓名</td>
<td align="center">
总得分</td>
</tr>
</thead>
</HeaderTemplate>
<AlternatingItemTemplate>
<tbody>
<tr>
<td>
<a href="###" onclick=<%# "show(this,"+"'tb"+ (Container.ItemIndex+1)+"')"%> value="1">
+</a></td>
<td width="30%" align="center">
<%#Container.ItemIndex+1 %>
</td>
<td width="30%" align="center">
<%#Eval("Name") %>
</td>
<td align="center">
<%#Eval("SumScore") %>
</td>
</tr>
</tbody>
<tbody id='<%#"tb"+ (Container.ItemIndex+1) %>' style="display: none">
<asp:Repeater ID="rpScore" DataSource='<%# GetScoreDataSource(Eval("Name").ToString()) %>'
runat="server">
<AlternatingItemTemplate>
<tr>
<td>
</td>
<td width="30%" align="center">
</td>
<td width="30%" align="center">
<%#Eval("Score") %>
</td>
<td align="center">
<%#((DateTime)Eval("ScoreTime")).ToString("yyyy:MM:dd")%>
</td>
</tr>
</AlternatingItemTemplate>
<ItemTemplate>
<tr>
<td>
</td>
<td width="30%" align="center">
</td>
<td width="30%" align="center">
<%#Eval("Score") %>
</td>
<td align="center">
<%#((DateTime)Eval("ScoreTime")).ToString("yyyy:MM:dd")%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</AlternatingItemTemplate>
<ItemTemplate>
<tbody>
<tr>
<td>
<a href="###" onclick=<%# "show(this,"+"'tb"+ (Container.ItemIndex+1)+"')"%> value="1">
+</a></td>
<td width="30%" align="center">
<%#Container.ItemIndex+1 %>
</td>
<td width="30%" align="center">
<%#Eval("Name") %>
</td>
<td align="center">
<%#Eval("SumScore") %>
</td>
</tr>
</tbody>
<tbody id='<%#"tb"+ (Container.ItemIndex+1) %>' style="display: none">
<asp:Repeater ID="rpScore" DataSource='<%# GetScoreDataSource(Eval("Name").ToString()) %>'
runat="server">
<AlternatingItemTemplate>
<tr>
<td>
</td>
<td width="30%" align="center">
</td>
<td width="30%" align="center">
<%#Eval("Score") %>
</td>
<td align="center">
<%#((DateTime)Eval("ScoreTime")).ToString("yyyy:MM:dd")%>
</td>
</tr>
</AlternatingItemTemplate>
<ItemTemplate>
<tr>
<td>
</td>
<td width="30%" align="center">
</td>
<td width="30%" align="center">
<%#Eval("Score") %>
</td>
<td align="center">
<%#((DateTime)Eval("ScoreTime")).ToString("yyyy:MM:dd")%>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
</form>
</body>
</html>

wangbin1986 2009-08-17
  • 打赏
  • 举报
回复
datalist or repeater 在控件内加入lable,使用<%# Eval("Item") %>绑定数据信息
wangyinnet 2009-08-17
  • 打赏
  • 举报
回复
repeter里嵌套个repeter,
父级repeter绑定一张表,子repeter根据父级repeter里ID,绑定下就行了,很简单的.
love_cloud 2009-08-17
  • 打赏
  • 举报
回复
不会 帮顶 主要是没看懂什么意思 用datalist行不行?
阿非 2009-08-17
  • 打赏
  • 举报
回复
你目前是一个项目下,如果表中有多个项目,是否项目也要遍历呢?
山林大 2009-08-17
  • 打赏
  • 举报
回复
3楼,这不是主子表,就一个表
5楼,这方法我想到过,不行滴,只会把某列拉得很长
爱此清夜雨 2009-08-17
  • 打赏
  • 举报
回复
我想在gridview增加列,然后编辑模版,再拖入个gridview,在数据库建立相应关系。应该可以吧!
bychgh 2009-08-17
  • 打赏
  • 举报
回复
帮顶
以下为视频源码目录: 一、Android入门介绍 视频教程 1.1 android系统介绍 1.2 android系统框架的介绍 1.3 如何搭建android开发环境 1.4 android生命周期的介绍 1.5 android使用全局变量传递数据 1.6 android使用剪切板传递数据 1.7 意图传递数据的第一种方式 1.8 android使用静态变量传递数据 1.9 意图返回结果 二、Android常用布局介绍 2.1 android常用布局属性的介绍 2.2 android线性布局的介绍 2.3 android框架布局的使用 2.4 相对布局的使用 2.5 表格布局的介绍 三、Android解析xml文件 3.1 android解析xml文件 3.2 android使用pull解析xml 3.3 android使用dom解析xml 四、Android之http协议编程 4.1 http协议的介绍 4.2 http协议GET方式获取图片 4.3 http使用Post方式进行提交数据 4.4 http使用apache工具类提交数据 五、 Android解析json数据 5.1 android解析json数据(一) 5.2 android解析json数据(二) 5.3 android使用gson解析 5.4 android使用fastjson解析 六、Android常用UI控件编程 6.1 TextView如何显示丰富的文本 6.2 TextView显示表情图像和文字 6.3 TextView单击链接弹出Activity 6.4 TextView实现跑马灯效果 6.5 EditText输入表情图像 6.6 EditText中输入特定的字符 6.7 AutoCompleteTextView完成输入 6.8 Button按钮的焦点变化 6.9 Button图文混排的按钮 6.10 RadioButton单选按钮的使用 6.11 ToggleButton按钮的使用 6.12 CheckBox复选框控件使用 6.13 SeekBar拖动控件的使用 6.14 ImageView的基本用法 6.15 ImageView实现适屏和裁剪图片 6.16 ImageView实现图片旋转和缩放 6.17 ImageView从网络上获取图像 6.18 DatePicker输入日期控件的使用 6.19 时间对话框的使用 6.20 ProgressBar进度条的使用 6.21 RatingBar评分控件的使用 6.22 ScrollView垂直滚动控件的使用 6.23 HorizontalScrollView水平滚动 6.24 Gallery画廊控件 6.25 Spinner下拉列表控件 6.26 ImageSwitcher图片切换控件 6.27 GridView网格控件 6.28 TabHost卡片的使用 6.29 ViewStub惰性装载控件 6.30 ViewPager多页面滑动效果一 6.31 ViewPager多页面滑动效果二 6.32 ListView普通列表控件的使用 6.33 适配器结合ListView控件的使用 七、百度地图实战开发 7.1 百度地图搭建开发环境 7.2 百度地图覆盖物的描述 7.3 百度地图多个覆盖物的描述 7.4 根据范围和检索词发起范围检索 7.5 标注驾车路线搜索 7.6 标注行走路线搜索 7.7 公交换乘路线搜索 7.8 公交路线详情搜索 7.9 在一个地图上显示多条导航路线 7.10 经纬度和地址的转换 八、服务器端JDBC编程 8.1 jdbc框架介绍一 8.2 jdbc框架介绍二 九、服务器端Web编程 9.1 JavaWeb实现用户注册功能一 9.2 JavaWeb实现用户注册功能二 9.3 JavaWeb实现产品表维护一 9.4 JavaWeb实现产品表维护二 9.5 JavaWeb实现产品表维护三 9.6 JavaWeb实现产品表维护四 十、android存储数据和文件 10.1 android读写sdcard 10.2 SharedPreference共享参数 10.3 android操作数据库一 10.4 android操作数据库二 10.5 android操作数据库三 10.6 android操作数据库四 10.7 android操作数据库五 十一、android对话框介绍 11.1 对话框介绍一 11.2 对话框介绍二 11.3 对话框介绍三 11.4 对话框介绍四 十二、android通知的使用 12.1 通知的使用一 12.2 通知的使用二 十三、android菜单的使用 13.1 Android菜单Menu介绍一 13.2 Android菜单Menu介绍

110,577

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧