博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
GridView中实现可收缩的面板
阅读量:6174 次
发布时间:2019-06-21

本文共 3697 字,大约阅读时间需要 12 分钟。

 

1、创建一个TestDB数据库:

添加一张表Table_1,并向其中添加一些数据,表结构如下图。

2、新建一个asp.net网站。

在Default.aspx上拖放一个GridView。在页面上加入下面切换层的js代码:

 
function
 toggleLayer(whichLayer)
 {     
     
if
 (document.getElementById)
     {
      
//
 this is the way the standards work
      
var
 style2 
=
 document.getElementById(whichLayer).style;
      style2.display 
=
 style2.display
?
 
""
:
"
block
"
;
     }
     
else
 
if
 (document.all)
     {
      
//
 this is the way old msie versions work
      
var
 style2 
=
 document.all[whichLayer].style;
      style2.display 
=
 style2.display
?
 
""
:
"
block
"
;
     }
     
else
 
if
 (document.layers)
     {
      
//
 this is the way nn4 works
      
var
 style2 
=
 document.layers[whichLayer].style;
      style2.display 
=
 style2.display
?
 
""
:
"
block
"
;
     }
    }

3、定义面板:

面板的css样式:

.DivPanelTextBold
{
    font-size
:
 8pt
;
    font-weight
:
bold
;
    color
:
 #000000
;
    font-family
:
 Verdana, Helvetica, sans
;
}
.DivPanel
{
    display
:
none
;
    background-color
:
#F5F5F5
;
    white-space
:
 nowrap
;
    border-bottom
:
 #0072b4 1px solid
;
    border-left
:
 #0072b4 1px solid
;
    border-top
:
 #0072b4 1px solid
;
    border-right
:
 #0072b4 1px solid
;
    width
:
90%
;
    vertical-align
:
middle
;
    
}

面板的HTML代码如下:

 
<
div
>
    
<
href
="javascript:toggleLayer('row1');"
 class
=DivPanelTextBold
>
a
</
a
>
&nbsp;&nbsp;&nbsp;&nbsp;
    
<
div 
id
='row1' 
class
='DivPanel'
>
    
<
TABLE 
cellSpacing
='2' 
cellPadding
='2' 
width
='100%' 
border
='0'
>
    
<
tr
>
    
<
td 
class
='La_Ma_Text'
>
&nbsp;
</
td
>
    
<
td 
align
=right
>
    
<
href
="javascript:toggleLayer('row1');"
 class
=La_Ma_Link
>
    
<
img 
src
='Close.gif' 
border
=0 
align
='absmiddle'
>
    
</
a
>
    
</
td
>
    
</
tr
>
    
<
tr
>
    
<
td 
class
='DivPanelText' 
width
='158px'
>
&nbsp;
Cell Value: 
</
td
>
    
<
td 
class
='DivPanelText' 
width
='152px'
>
a
</
td
>
    
</
tr
>
    
<
tr
>
    
<
td
>
    
<
b
>
 Something 
</
b
>
    
</
td
>
    
</
tr
>
    
</
TABLE
>
    
</
div
>

收起的面板,如下图:

缩放的面板,如下图:

4、将面板绑定到GridView上。

    将面板的HTML代码绑定到Datatable的行上,并将Datatable绑定到GridView上,后台代码如下:

 
private
 
void
 LoadDT()
    {
        
try
        {
            ds 
=
 
new
 DataSet();
            sqlCMD 
=
 
new
 SqlCommand(
"
SELECT PKID,EmpId,SubModule FROM Table_1
"
, sqlConn);
            sqlDA.SelectCommand 
=
 sqlCMD;
            sqlDA.Fill(ds);
            
if
 (ds.Tables[
0
].Rows.Count 
>
 
0
)
            {
                DataColumn dc1 
=
 
new
 DataColumn();
                dc1.DataType 
=
 System.Type.GetType(
"
System.String
"
);
                dc1.ColumnName 
=
 
"
PKID
"
;
                DataColumn dc2 
=
 
new
 DataColumn();
                dc2.DataType 
=
 System.Type.GetType(
"
System.String
"
);
                dc2.ColumnName 
=
 
"
SubModule
"
;
                dt.Columns.Add(dc1);
                dt.Columns.Add(dc2);
                
foreach
 (DataRow dr 
in
 ds.Tables[
0
].Rows)
                {
                    myDr 
=
 dt.NewRow();
                    myDr[
0
=
 dr[
0
].ToString();
                    myDr[
1
=
 
"
<a href=\
"
javascript:toggleLayer(
'
row" + count + "
'
);\
"
 class=DivPanelTextBold>
"
 
+
 dr[
"
SubModule
"
].ToString() 
+
 
"
</a>
"
                        
+
 
"
&nbsp;&nbsp;&nbsp;&nbsp;<div id='row
"
 
+
 count 
+
 
"
' class='DivPanel'>
"
                        
+
 
"
<TABLE cellSpacing='2' cellPadding='2' width='100%' border='0'>
"
                        
+
 
"
<tr><td class='La_Ma_Text'>&nbsp;</td><td align=right><a href=\
"
javascript:toggleLayer(
'
row" + count + "
'
);\
"
 class=La_Ma_Link><img src='Close.gif' border=0 align='absmiddle'></a></td></tr>
"
;
                    myDr[
1
=
 myDr[
1
+
 
"
<tr><td class='DivPanelText' width='158px'>&nbsp;Cell Value: </td><td class='DivPanelText' width='152px'>
"
 
+
 dr[
"
SubModule
"
].ToString() 
+
 
"
</td></tr>
"
;
                    myDr[
1
=
 myDr[
1
+
 
"
<tr><td><b> Something </b></td></tr>
"
;
                    myDr[
1
=
 myDr[
1
+
 
"
</TABLE>
"
 
+
 
"
</div><br>
"
;
                    
//
dsa.dispose();
                    dt.Rows.Add(myDr);
                    count
++
;
                }
            }
            
else
            {
           
            }
            
this
.GridView1.DataSource 
=
 dt;
            
this
.GridView1.DataBind();
            ds.Dispose();
        }
        
catch
 (Exception ex)
        {
           
        }
    }

数据显示:

    
protected
 
void
 GridView1_DataBound(
object
 sender, EventArgs e)
    {
        
foreach
 (TableRow trow 
in
 GridView1.Rows)
        {
            
foreach
 (TableCell tcell 
in
 trow.Cells)
            {
                tcell.Text 
=
 HttpUtility.HtmlDecode(tcell.Text);                
            }
        }
    }

5、最终效果:

 

6、代码:

备注:代码是电脑上找到的,原出处不详。

作者:

出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

 

 
你可能感兴趣的文章
让时间处理简单化 【第三方扩展类库org.apache.commons.lang.time】
查看>>
用scikit-learn学习DBSCAN聚类
查看>>
Linux设备模型(热插拔、mdev 与 firmware)【转】
查看>>
Android开发笔记第二篇(Android 手机概念)
查看>>
js隐藏与显示回到顶部按钮
查看>>
hdu4496 D-City(扭转和支票托收啊 )
查看>>
在Kali Linux中更改GRUB2背景的5种方式
查看>>
如何把Windows 10的“便笺”按钮从操作中心挪到开始菜单和桌面
查看>>
19 个必须知道的 Visual Studio 快捷键
查看>>
如何在Ubuntu命令行下管理浏览器书签
查看>>
《从问题到程序:用Python学编程和计算》——2.3 内置函数和数学函数包
查看>>
《Adobe Acrobat XI经典教程》—第2课减小文件大小
查看>>
《数据库技术原理与应用教程》一第2章 数据库的基础知识
查看>>
在图片中加入噪点就能骗过 Google 最顶尖的图像识别 AI
查看>>
Linux集群和自动化维1.6 小结
查看>>
mysql 索引B-Tree类型对索引使用的生效和失效情况详解
查看>>
指针的看法
查看>>
为hexo博客添加基于gitment评论功能
查看>>
NASA制做模拟系外行星环境 发现了热木星大气不透明的原因
查看>>
SVN用法
查看>>