添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
坚韧的松鼠  ·  .net ...·  10 月前    · 
发怒的打火机  ·  Serializer.Deserialize ...·  1 年前    · 
http://www.codeproject.com/KB/webforms/GridViewExpandCollapse.aspx
代码下载: /Files/sunfishlu/GridViewExpandCollapse.rar 介绍
这篇文章介绍了使用JavaScript折叠/展开GridView行的功能,为了实现所希望的效果,我在GridView的表头放置了一张图片,当点击对应图片时,GridView将会折叠和展开行。 HTML代码
在GridView中添加一个模板列,把图片放到模板列中的HeaderTemplate中,此GridView的HTML代码如下: 1 < asp:GridView ID ="gvTab" BackColor ="WhiteSmoke" runat ="server" AutoGenerateColumns ="False" GridLines ="Vertical"
2 ShowFooter ="True" >
3 < Columns >
4 < asp:TemplateField >
5 < HeaderStyle Width ="25px" />
6 < ItemStyle Width ="25px" BackColor ="White" />
7 < HeaderTemplate >
8 < asp:Image ID ="imgTab" onclick ="javascript:Toggle(this);" runat ="server" ImageUrl ="~/minus.gif"
9 ToolTip ="Collapse" />
10 </ HeaderTemplate >
11 </ asp:TemplateField >
12 < asp:BoundField HeaderText ="n" DataField ="n" >
13 < HeaderStyle Width ="25px" />
14 < ItemStyle Width ="25px" />
15 </ asp:BoundField >
16 < asp:BoundField HeaderText ="sqrt(n)" DataField ="sqrtn" >
17 < HeaderStyle Width ="150px" />
18 < ItemStyle Width ="150px" />
19 </ asp:BoundField >
20 < asp:BoundField HeaderText ="qbrt(n)" DataField ="qbrtn" >
21 < HeaderStyle Width ="150px" />
22 < ItemStyle Width ="150px" />
23 </ asp:BoundField >
24 </ Columns >
25 < HeaderStyle Height ="25px" Font-Bold ="True" BackColor ="DimGray" ForeColor ="White" HorizontalAlign ="Center"
26 VerticalAlign ="Middle" />
27 < RowStyle Height ="25px" BackColor ="Gainsboro" HorizontalAlign ="Center" VerticalAlign ="Middle" />
28 < AlternatingRowStyle Height ="25px" BackColor ="LightGray" HorizontalAlign ="Center" VerticalAlign ="Middle" />
29 < FooterStyle BackColor ="Gray" />
30 </ asp:GridView >
31
GridView的表头图片绑定onclick事件 < asp:Image ID ="imgTab" onclick ="javascript:Toggle(this);" runat ="server" ImageUrl ="~/minus.gif" ToolTip ="Collapse" />

JavaScript代码
把下面的代码放到script标签中。

< script type = " text/javascript " >
var Grid = null ;
var UpperBound = 0 ;
var LowerBound = 1 ;
var CollapseImage = ' minus.gif ' ;
var ExpandImage = ' plus.gif ' ;
var IsExpanded = true ;
var Rows = null ;
var n = 1 ;
var TimeSpan = 25 ;

window.onload
= function ()
{
Grid
= document.getElementById( ' <%= this.gvTab.ClientID %> ' );
UpperBound
= parseInt( ' <%= this.gvTab.Rows.Count %> ' );
Rows
= Grid.getElementsByTagName( ' tr ' );
}


function Toggle(Image)
{
ToggleImage(Image);
ToggleRows();
}


function ToggleImage(Image)
{
if (IsExpanded)
{
Image.src
= ExpandImage;
Image.title
= ' Expand ' ;
Grid.rules
= ' none ' ;
n
= LowerBound;

IsExpanded
= false ;
}

else
{
Image.src
= CollapseImage;
Image.title
= ' Collapse ' ;
Grid.rules
= ' cols ' ;
n
= UpperBound;

IsExpanded
= true ;
}

}


function ToggleRows()
{
if (n < LowerBound || n > UpperBound) return ;

Rows[n].style.display
= Rows[n].style.display == '' ? ' none ' : '' ;
if (IsExpanded) n -- ; else n ++ ;
setTimeout(
" ToggleRows() " ,TimeSpan);
}

< / script>

在上面的代码中,全局参数是在window.onload事件中初始化的。有三个方法:toogle ToogleImage和ToggleRows。Toogle方法响应一个click事件,它先找到表头中的图片,然后通过调用ToogleImage和ToggleRows来实现我们的目的。注意在ToggleRows方法中,为了实现一些动态的效果,我们重复使用了 setTimeout方法。
为了在折叠展开中有一定的迟缓,每一次调用ToggleRows方法都设置了25毫秒,你可以根据需要改变 TimeSpan的值。

总结
在这篇文章中,我使用了 setTimeout 来达到流畅展开和折叠的效果。

受《ExtJs2.0学习系列》文章的启发,想把自己近段时间一直使用的“异步 GridView ”介绍给大家。 ASP x GridView 为控件商 Devexpress .net 平台上的作品,它的使用与微软的 GridView 大体一致(这意味着,我不会介绍诸如绑定数据源等简单操作),支持 IDE 上的拖拽、属性可视编辑等,同时在业务逻辑、界面展示等方面更富表现力... callback: function (a,b,c){ var gridView = grid .getView(); var groupsLength = gridView .getGroups().length; if(groupsLength &gt; 0){ var firstGr... 然后在网上找到一个开源的项目,叫Sticky Grid Headers GridView ,超级好用,效果类似android自带的联系人 Sticky Grid Headers GridView 的adapter也是继承的BaseAdapter,不过要求实现Sticky Grid HeadersSimpleAdapter这个接口 但是有个非常不爽的地方,就是 GridView 要进 回发操作,所以,点击或者 展开 折叠 节点,都会进 数据的回发。 实现的原理是这样的,首先看一下绑定到 GridView 的datatable数据表格: 可以看到本数据集的构造方式,即parentID下面保 Insus.NET近段时间应朋友的要求,写一个 GridView 多层嵌套和 折叠 展开 。这个功能的 GridView 多层嵌套没有问题,因为已经做了无限次数,但是 折叠 展开 的功能,却花上不少时间(网上找资料),虽找到资料可参考,还是了解明它,并修改适合自己程序使用。效果如下: 站点中多个页面使用,因此Insus.NET把它写在一个用户自定义控件ASCX上。 InsusMenu.ascx 一共添加4列:在下面主要是对第一和第二列进 操作,根据第一列进 分组 ,并对第二列进 纵向单元格合并操作; 2、最简单的 分组 仅仅根据“离线要素图层”列展示 分组 结果, 分组 标题默认使用Dev自带的设置,代码如... 相信大家对 GridView 都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项。打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现 GridView 的使用。“Tiles”提供了一个简单易用,平铺方式来组织内容显示。Windows8的开始菜单是最典型的 GridView 示例。“开始菜单”显示了系统中安装的所有应用程序,而且支持重新排列。 本文源于我们项目的开发人员... 原始数据格式: 分组 :按性别分第一组,按出生日期分第二组: grid ColumnSex.GroupIndex = 0;//性别列为第一组 grid Columndateofbirth.GroupIndex = 1;//出生日期列为第二组 gridView 1.ExpandAllGroups();// 展开 所有组运 结果:其中组名格式可由 GroupFormat设置。排序: grid ColumnID.SortO...   有天在想工作上的事的时候,看着.net原有的Data GridView ,想起以前我写过的一篇文章,总结了一个好的Gird控件应该具备哪些功能,在那里我提及到了 分组 功能,就像jq Grid 那样,   其实这样的显示型式很常见,就在平时邮箱的邮件列表就是按这种 分组 型式显示的,按今天、昨天、上周之类,在购物网站的历史订单处也可以看见这种 Grid 表的身影。但是原有的Data GridView 并不支持这... 编写代码 GridView 网格布局用了BaseAdapter基础适配器新建一个java自动生成xml主java里面打:package com.example.palace;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import a...