哪个牛人做过 gridview列折叠!

cx1054980531 2009-09-18 09:03:01
把有相同代码的折叠起来
我大个比方

企业名字 企业代码 企业耗能类型
包钢 3838438 石油
包钢 3838438 煤矿
包钢 3838438 水蒸气


我想实现的效果


+企业名字 企业代码 企业耗能类型
包钢 3838438 ......

在列左边加个小加号,点击那个小加号然后就
-企业名字 企业代码 企业耗能类型
包钢 3838438 石油
包钢 3838438 煤矿
包钢 3838438 水蒸气
点击减号 缩回去
...全文
432 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuhaiyangdh 2009-09-21
  • 打赏
  • 举报
回复
用js很容易的啊
tkscascor 2009-09-18
  • 打赏
  • 举报
回复

<script src=JS/jquery-1.3.2.min.js type="text/javascript"></script>
<script type="text/javascript">
$(function(){
var index=1;//gridview 第二行才是数据
var strSex="";//初始比较数据
$.each($('#DataGrid1 tr'),function(t,own){
if(index==t)
{
// 你用的时候8换成你城市的索引列
strSex=$(own).children().get(8).innerText;
//定义首行显示,控制隐藏 类名为"rows_"+index+"_Child"的行
$(own).addClass("rows_"+index);
// 这个加号减号就没随着点击更改了, 你看着代码自己添加下效果了
$(own).children('td').get(7).innerHTML="<span onclick=\"ShowDetail('rows_"+index+"_child')\"><font color='red'>+</font></span>";
}
else
{
//如果对比列与首列城市相同,就隐藏对比列,并赋予新的类名
if(strSex==$(own).children('td').get(8).innerText)
{
$(own).addClass("rows_"+index+"_child");//为子行增加新的类名,方便集中控制显示与隐藏.
$(own).hide();
}
else
{
if(t>0){

index=t;
strSex=$(own).children().get(8).innerText;
$(own).addClass("rows_"+index);
$(own).children('td').get(7).innerHTML="<span onclick=\"ShowDetail('rows_"+index+"_child')\"><font color='red'>+</font></span>";
}//忽略表头
}
}



})

})
//隐藏显示.
function ShowDetail(classname)
{
var size=$("."+classname).size();
if(size>0)
{
$("."+classname).toggle();
}
}
</script>




是用Jquery的. 不知道你用过没.
代码比较简陋, 你看着修改下
tkscascor 2009-09-18
  • 打赏
  • 举报
回复
额..等等. 我去整整
fhjzgsy 2009-09-18
  • 打赏
  • 举报
回复
你试试用gridview嵌套datalist
在gridview模板列里循环数据,显示不重复的,有重复的在datalist里显示
cx1054980531 2009-09-18
  • 打赏
  • 举报
回复
13楼,您能给小弟写个 代码不,浪费几分钟时间
cx1054980531 2009-09-18
  • 打赏
  • 举报
回复
牛人真多,内牛满面的谢谢大伙
tkscascor 2009-09-18
  • 打赏
  • 举报
回复
闷. gridview 在html 生成的是table. 你遍历数据,
设置一个局部变量,存储行索引
取一个tr的数据,跟后面的对比, 如果相同企业,就隐藏这一行,同时更新比较行 前面增加一个+ 符号.
然后继续比较,
遇到不同企业的时候,更改局部变量的值,用不同局部变量的再进行与下面的数据比较,以此类推
额, 前提是你 已经把数据根据企业 group by 分好组了
logenliqiang 2009-09-18
  • 打赏
  • 举报
回复
sdfsdfsd
xie_yanke 2009-09-18
  • 打赏
  • 举报
回复
<script src="jquery.js"></script>
<div>
<table id="s" cellspacing="0" cellpadding="4">
<tr>
<td></td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td></td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td></td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td></td>
<td>2</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td></td>
<td>2</td>
<td>2</td>
<td>3</td>
</tr>
</div>
<script>
var prvText = "";
var prvIndex = 0;
$("#s").find("tr").each(function(i){
$(this).attr("class", "row"+i);
if(i < $("#s").find("tr").size()){
if($(this).find("td:eq(1)").text() == prvText)
{
$(this).css("background-color", "gray");
$(this).attr("class", "row" + prvIndex);
$(this).css("display", "none");
}
else
{
$(this).css("background-color", "#ffffff");
$(this).find("td:eq(0)").html("+");
prvText=$(this).find("td:eq(1)").text();
prvIndex = i;
$(this).click(function(){
$("#s").find("tr[class='row" + i + "']:gt(0)").each(function(){
if($(this).css("display")=="none") $(this).show(); else $(this).hide();
});
});
}
}
});
</script>

草写了一个,没优化,可以用。:D
gangadewa 2009-09-18
  • 打赏
  • 举报
回复
当然可以,模板列里面什么控件都可以加
cyrix_wxm 2009-09-18
  • 打赏
  • 举报
回复
ding!
爪哇鹅 2009-09-18
  • 打赏
  • 举报
回复
没做过,不过能否在GridView自定义模板列里面加入TreeView控件,并把相关节点通过绑定字符串指定为数据表的相关字段?
cx1054980531 2009-09-18
  • 打赏
  • 举报
回复
upup
gangadewa 2009-09-18
  • 打赏
  • 举报
回复
我有一个TreeGrid的控件,比较适合你,在3.5框架下运行,是tree和gridview的结合,联系我QQ:369199833,我给你
zzxap 2009-09-18
  • 打赏
  • 举报
回复
你看看gridview编译出来的html代码是什么,找出规律,然后用js把它隐藏掉
cx1054980531 2009-09-18
  • 打赏
  • 举报
回复
up下,希望好答案
saishangpeiqian 2009-09-18
  • 打赏
  • 举报
回复
tkscascor 2009-09-18
  • 打赏
  • 举报
回复
我会使用js来操作.遍历所有数据, 进行再进行操作. 比较相同企业的. 就在第一个tr 上加上哪个+ 或者-,
tkscascor 2009-09-18
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 cx1054980531 的回复:]
up up up
[/Quote]
还up? 我看了11楼代码. 原理上跟我的代码是一致的. . 都可以实现你要的效果
加载更多回复(1)

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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