首页 新闻 会员 周边

.net 多记录页面展示及编辑保存问题

0
悬赏园豆:30 [待解决问题]
      问题来自于工作中的实际应用。如下描述,Gridview中每一格对应一条记录,GridView里每个格里都用 TextBox 展现得分。不是一行一行编辑,而是整个gridview下面有一个“保存”按钮。
问题是:  
 
1. 怎么构建出这个GridView? 我之前是这么做的,觉得很笨拙,不知道有没有更好的方法:先取得各个列名称(项目名),放在字符串数组1里,再取得各个行中的姓名,放在字符串2里,然后使用两层循环,一行一列逐个生成 TextBox 元素。这样绕过了构建一个大sql语句的问题,也方便控制格式(有对应的记录就显示为 TextBox,没有对应记录就标记为 ‘---’)  
 
2. 保存时每个TextBox怎样找到对应的记录呢?我以前的做法是为每个 TextBox 设置ID值,ID=姓名+项目名称,遍历页面中的TextBox,根据ID值更新对应数据库记录。不知有没有更合适的方法。

请各位指点。

 
------------------------------
数据库表:
姓名    项目名称  权重  得分
李四     项目1        0.3     20
李四     项目2
        0.3     40
李四     项目3        0.4     80
王五     项目1        0.3     20
王五     项目3        0.3     90
张三     项目1        0.5     10
张三     项目2        0.3     15
张三     项目3        0.2     20
 
网页展示:
姓名 项目1 项目2 项目3 小计 排名
李四 20 40 80 (20*0.3+40*0.3+80*0.4=)50 1
王五 20 --- 90 (20*0.3+90*0.3=)33 2
张三 10 15 20 (10*0.5+15*0.3+20*0.2=)13.5 3
 
想实现的功能说明:
1). 根据数据表,在网页中展示如上表格,红色部分展示为TextBox控件(“---” 项除外),可修改,动态统计小计(只显示计算结果)、展示排名,并按排名升序排列 ;
2). 网页表格中绿色的表头动态生成,根据数据库表项目名称字段决定,数目不定,可能还有项目4、项目5……
3). 网页中设置一个保存按钮,保存红色得分至库表相应记录。
fredgogo的主页 fredgogo | 初学一级 | 园豆:172
提问于:2014-03-17 21:08
< >
分享
所有回答(6)
0

这个功能可以用js/jquery来控制,直接在GridView上,相对比较麻烦。

幻天芒 | 园豆:37175 (高人七级) | 2014-03-18 08:57
0

你需要jquery easyUI

吴瑞祥 | 园豆:29449 (高人七级) | 2014-03-18 09:29
0

easyui跟minniui都可以实现

小也 | 园豆:75 (初学一级) | 2014-03-18 11:22
0

建议别用Gridview,现在有很多UI都可以实现这样的功能!

比如:easyui miniui jqgrid等

junjieok | 园豆:779 (小虾三级) | 2014-03-18 12:36
0

是的,建议借助jquery ui 插件实现

逗码农 | 园豆:202 (菜鸟二级) | 2014-04-12 12:11
0

在textbox上加一个自定义属性DataID用于存放这条记录的主键ID(因为你展示出来的表是纵表转横表的,所以每个textbox其实就是一条记录)。

当点击保存按钮的时候,遍历gridview的row,再遍历row中的textbox,再取textbox的值和它的DataId,然后执行update操作。

Alex_QY1987 | 园豆:1888 (小虾三级) | 2014-06-26 15:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册