本文实例讲述了C#实现DataList里面嵌套DataList的折叠菜单。分享给大家供大家参考,具体如下:
点击前效果图如下:
点击后效果图如下:
具体实现代码如下:
Javascript脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<script type= "text/javascript" > function showmenu(id) { smallimg = eval( "smallimg" +id); img =eval( "img" +id); if (smallimg.style.display == "none" ) { eval( "smallimg" +id+ ".style.display=\"\";" ); //全部显示 img.src= "Image/tree_folder3.gif" ; //显示为- } else { eval( "smallimg" +id+ ".style.display=\"none\";" ); //全部隐藏 img.src= "Image/tree_folder4.gif" ; //显示为+ } } </script> |
HTML代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
<body> <form id= "Form1" method= "post" runat= "server" > <font face= "宋体" ></font> <table width= "679" height= "100%" border= "0" cellpadding= "0" cellspacing= "0" align= "center" > <tr> <td align= "center" valign= "top" > <strong>版块 设 置</strong> <br /> <br /> 管理选项:<asp:Button ID= "btnAdd" runat= "server" OnClick= "btnAdd_Click" Text= "添加一级版块" /><br /> <br /> <asp:DataList ID= "DataList1" runat= "server" CellSpacing= "0" CellPadding= "0" Width= "679" OnItemDataBound= "DataList1_ItemDataBound" > <HeaderTemplate> <table width= "679" border= "0" cellpadding= "0" cellspacing= "0" bgcolor= "#000000" class = "border" > <tr bgcolor= "#a4b6d7" class = "title" > <td height= "25" align= "center" > <strong>版块名称</strong></td> <td height= "20" align= "center" > <strong>操作选项</strong></td> </tr> </HeaderTemplate> <ItemTemplate> <tr bgcolor= "ECF5FF" class = "tdbg" > <td height= "22" width= "50%" > <img id= "img<%#Eval(" BigClassID ")%>" src= "Image/tree_folder4.gif" width= "15" height= "15" onclick= "showmenu(<%#Eval(" BigClassID ")%>)" ><%#Eval( "BigClassName" )%></td> <td align= "center" width= "50%" > <a href= 'SmallClassAdd.aspx?BigClassID=<%#Eval("BigClassID")%>' > 添加二级版块</a> | <a href= 'BigClassModify.aspx?BigClassID=<%#Eval("BigClassID")%>' > 修改一级版块</a> | <a href= 'BigClassDelete.aspx?BigClassID=<%#Eval("BigClassID")%>' onclick= "return confirm('确定删除吗,下级版块及相关帖子都将被删除,且不可恢复!!!')" >删除一级版块</a></td> </tr> <tr bgcolor= "ECF5FF" class = "tdbg" width= "100%" > <td colspan= "2" width= "100%" > <asp:DataList ID= 'dlstSmallClass' EnableViewState= 'false' runat= 'server' > <HeaderTemplate> <table width= "679" border= "0" cellpadding= "0" cellspacing= "0" bgcolor= "#000000" class = "border" > </HeaderTemplate> <ItemTemplate> <tr id= "smallimg<%#Eval(" BigClassID ")%>" style= "display:none" bgcolor= "#E3E3E3" class = "tdbg" > <td height= "22" width= "50%" colspan= "3" > <img src= "Image/tree_folder3.gif" width= "15" height= "15" ><%#Eval( "SmallClassName" )%></td> <td align= "center" width= "50%" colspan= "3" > <a href= 'SmallClassModify.aspx?SmallClassID=<%#Eval("SmallClassID")%>' > 修改二级版块</a> | <a href= 'SmallClassDelete.aspx?SmallClassID=<%#Eval("SmallClassID")%>' onclick= "return confirm('确定删除吗,相关帖子都将被删除,且不可恢复!!!')" >删除二级版块</a></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:DataList> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:DataList> </td> </tr> </table> </form> </body> |
上面的功能有点缺陷(ques1:多行时候不能折叠,默认只折叠第一行;ques2:不支持IE),现在改善如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<script type= "text/javascript" > function showmenu(id) { var smallimg = document.getElementById( "smallimg" +id); var img = document.getElementById( "img" +id); if (smallimg.style.display == "none" ) { smallimg.style.display= "" ; img.src= "Image/tree_folder3.gif" ; //显示为- } else { smallimg.style.display = "none" ; img.src= "Image/tree_folder4.gif" ; //显示为+ } } </script> |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
<body> <form id= "Form1" method= "post" runat= "server" > <font face= "宋体" ></font> <table width= "679" height= "100%" border= "0" cellpadding= "0" cellspacing= "0" align= "center" > <tr> <td align= "center" valign= "top" > <strong>版 块 设 置</strong> <br /> <br /> 管理选项:<asp:Button ID= "btnAdd" runat= "server" OnClick= "btnAdd_Click" Text= "添加一级版块" /><br /> <br /> <asp:DataList ID= "DataList1" runat= "server" CellSpacing= "0" CellPadding= "0" Width= "679" OnItemDataBound= "DataList1_ItemDataBound" > <HeaderTemplate> <table width= "679" border= "0" cellpadding= "0" cellspacing= "0" bgcolor= "#000000" class = "border" > <tr bgcolor= "#a4b6d7" class = "title" > <td height= "25" align= "center" > <strong>版块名称</strong> </td> <td height= "20" align= "center" > <strong>操作选项</strong> </td> </tr> </HeaderTemplate> <ItemTemplate> <tr bgcolor= "ECF5FF" class = "tdbg" > <td height= "22" width= "50%" > <img id= "img<%#Eval(" BigClassID ")%>" src= "Image/tree_folder4.gif" width= "15" height= "15" onclick= "showmenu(<%#Eval(" BigClassID ")%>)" ><%#Eval( "BigC <td align=" center " width=" 50% " colspan=" 3"> <a href= 'SmallClassModify.aspx?SmallClassID=<%#Eval("SmallClassID")%>' > 修改二级版块</a>|<a href= 'SmallClassDelete.aspx?SmallClassID=<%#Eval("SmallClassID")%>' onclick= "return confirm('确定删除吗,相关帖子都将被删除,且不可恢复!!!')" >删除二级版块</a> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:DataList> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:DataList> </td> </tr> </table> </form> </body> |
希望本文所述对大家C#程序设计有所帮助。