首页 新闻 会员 周边

asp.net某列下由三级构成一行问题

0
悬赏园豆:140 [已解决问题] 解决于 2012-03-04 23:19

需求的话就是如图,地区下可能存在三层(已确定最多三层)关系,舒适度一列的数值是有文本框用户进行填写并提交库中保存,最容易想到的方式可能是拼接<table>出来,不知道各位大哥谁要更好的实现方式吗?只有150豆了,全拿出来了!!

问题再难总能解决的主页 问题再难总能解决 | 初学一级 | 园豆:26
提问于:2012-03-03 19:35
< >
分享
最佳答案
1

拼table很麻烦的,你还不如先把数据显示在一个完整的table中,然后用jquery方法按你的要求把前面三列根据你的要求做行列合并处理。比如你检查前三列只有第一列数据是火星,后两列是空的,则把三列合并。合并的jquery代码可以参考这个。

// td.attr("rowSpan", 3); 
//
td.remove();

jQuery(document).ready(function() {
var j = 0;
jQuery("table tr").each(function() {
j++;
var td = jQuery(this).find("td:eq(2)"); //从第几列开始
if(j == 3){ //当循环到第几行时
td.attr("rowSpan", 3);
}
});
var j = 0;
jQuery("table tr").each(function() {
j++;
var td = jQuery(this).find("td:eq(2)"); //从第几列开始
if(j == 4||j==5){ //当循环到第几行时
td.remove();
}
});
})
收获园豆:120
LCM | 大侠五级 |园豆:6876 | 2012-03-03 22:55

多谢LCM大哥,jquery这个方法合并行列很好用,相对于开始我用的拼接table更方便,最重要是在后期要获取控件值中这种方式很适合,因为直接在gridview的事件中就可以获取填写的值,而不用在去获得我拼接的控件一个一个去获取,也感谢白云天大哥的建议 ... 后来发现jquery是有合并行列的插件的用起来可能更方便

问题再难总能解决 | 园豆:26 (初学一级) | 2012-03-04 23:21
其他回答(2)
0

以前做过类似的;

感觉在.CS文件里面拼接Table,逻辑好写很多;

Table table = new Table();
TableRow tr = new TableRow();
TableCell td = new TableCell();
td.ColumnSpan = ?;控制单元格跨越的列数
td.RowSpan = ?; 控制单元格跨越的行数

kenzo.lee | 园豆:205 (菜鸟二级) | 2012-03-03 22:05
1

怎么,拼接<table>没能解决问题吗?

收获园豆:20
KivenRo | 园豆:1734 (小虾三级) | 2012-03-03 22:34

拼接table是可以,但是太麻烦,后面实际需求中有若干项需要获得用户填写的数据保存库中

支持(0) 反对(0) 问题再难总能解决 | 园豆:26 (初学一级) | 2012-03-03 23:26

获取数据用jquery脚本就可以实现,用户填写的舒适度跟前面的类别应该对应吧,你可以给Input设置上标签,对应第一个类别,用脚本去循环判断标签,得到对应数据,再将数据拼接成一个字符串,用后台cs代码保存不就行了(或用ajax调用一般处理程序执行也可以)

支持(0) 反对(0) KivenRo | 园豆:1734 (小虾三级) | 2012-03-04 00:04
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册