GridView三层嵌套加折叠!
今天在开发遇到一个问题,需求三层嵌套,于是根据孟子的两层嵌套加折叠的基础上,增加为三层嵌套!
下面为效果图:
1
protected void Page_Load(object sender, EventArgs e)
2
{
3
if (!IsPostBack)
4
{
5
BindParent();
6
}
7
}
8![](/Images/OutliningIndicators/None.gif)
9
private void BindParent()
10
{
11
string sql = "select * from PageLink where PID=0 order by ID desc";
12
DataSet ds = Iwoak.ExecSQL.ExecuteDataset(sql);
13
gvParent.DataSource = ds.Tables[0].DefaultView;
14
gvParent.DataBind();
15
}
16
17![](/Images/OutliningIndicators/None.gif)
18
protected void gvParent_RowDataBound(object sender, GridViewRowEventArgs e)
19
{
20
if (e.Row.RowType == DataControlRowType.DataRow)
21
{
22
GridView gvChild = (GridView)e.Row.FindControl("gvChild");
23
Label lblID = (Label)e.Row.FindControl("lblID");
24
string sql = "select * from PageLink where PID=" + lblID.Text;
25
DataSet ds = Iwoak.ExecSQL.ExecuteDataset(sql);
26
gvChild.DataSource = ds.Tables[0].DefaultView;
27
gvChild.RowDataBound += new GridViewRowEventHandler(gvChild_RowDataBound);
28
gvChild.DataBind();
29
}
30
}
31![](/Images/OutliningIndicators/None.gif)
32![](/Images/OutliningIndicators/None.gif)
33
protected void gvChild_RowDataBound(object sender, GridViewRowEventArgs e)
34
{
35
if (e.Row.RowType == DataControlRowType.DataRow)
36
{
37
GridView gvlink = (GridView)e.Row.FindControl("gvlink");
38
Label lblID = (Label)e.Row.FindControl("lbl_ID");
39
string sql = "select * from PageLink where PID=" + lblID.Text;
40
DataSet ds = Iwoak.ExecSQL.ExecuteDataset(sql);
41
gvlink.DataSource = ds.Tables[0].DefaultView;
42
gvlink.DataBind();
43
}
44
}
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
3
![](/Images/OutliningIndicators/InBlock.gif)
4
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
5
![](/Images/OutliningIndicators/InBlock.gif)
6
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
7
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
8
![](/Images/OutliningIndicators/None.gif)
9
![](/Images/OutliningIndicators/None.gif)
10
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/InBlock.gif)
14
![](/Images/OutliningIndicators/InBlock.gif)
15
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
20
![](/Images/OutliningIndicators/InBlock.gif)
21
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
22
![](/Images/OutliningIndicators/InBlock.gif)
23
![](/Images/OutliningIndicators/InBlock.gif)
24
![](/Images/OutliningIndicators/InBlock.gif)
25
![](/Images/OutliningIndicators/InBlock.gif)
26
![](/Images/OutliningIndicators/InBlock.gif)
27
![](/Images/OutliningIndicators/InBlock.gif)
28
![](/Images/OutliningIndicators/InBlock.gif)
29
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
30
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
35
![](/Images/OutliningIndicators/InBlock.gif)
36
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
37
![](/Images/OutliningIndicators/InBlock.gif)
38
![](/Images/OutliningIndicators/InBlock.gif)
39
![](/Images/OutliningIndicators/InBlock.gif)
40
![](/Images/OutliningIndicators/InBlock.gif)
41
![](/Images/OutliningIndicators/InBlock.gif)
42
![](/Images/OutliningIndicators/InBlock.gif)
43
![](/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
44
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
1
<head runat="server">
2
<title>内嵌页链接--列表页面</title>
3
<script type="text/javascript" language="javascript" >
4
function ShowHidden(sid,ev)
5
{
6
ev = ev || window.event;
7
var target = ev.target || ev.srcElement;
8
var oDiv = document.getElementById("div" + sid);
9
oDiv.style.display = oDiv.style.display == "none"?"block":"none";
10
target.title = oDiv.style.display == "none"?"显示":"隐藏";
11
var imgid='img'+sid;
12
document.getElementById(imgid).src=oDiv.style.display == "none"?"../CommonFiles/images/open.gif":"../CommonFiles/images/close1.gif";
13
}
14
</script>
15
</head>
16
<body>
17
<form id="form1" runat="server">
18
19
<asp:GridView ID="gvParent" runat="server" Width="100%" AutoGenerateColumns="False"
20
EmptyDataText='<font color="red" class="GridViewItem" >没有找到相关数据!</font>'
21
OnRowDataBound="gvParent_RowDataBound" >
22
<EmptyDataRowStyle HorizontalAlign="Center" />
23
<HeaderStyle ForeColor="White" HorizontalAlign="Center" CssClass="GridViewHeader" />
24
<PagerSettings Visible="False" />
25
<Columns>
26
<asp:TemplateField HeaderText="名称">
27
<itemtemplate>
28
<A id='<%#Eval("ID") %>' onclick="ShowHidden('<%#Eval("id") %>',event)" href="#">
29
<IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" id='img<%# Eval("ID")%>'
30
alt="展开/折叠" src="../CommonFiles/images/close1.gif" /> <%# Eval("name")%></A>
31
<asp:Label ID="lblID" runat="server" Text='<%#Eval("id") %>' style="display:none;"></asp:Label>
32
<div id="div<%# Eval("ID")%>" >
33
<asp:GridView id="gvChild" runat="server" OnRowDataBound="gvChild_RowDataBound" CssClass="inputAwoke" Width="95%" AutoGenerateColumns="False" ShowHeader="False" BorderWidth="0px" HorizontalAlign="Center">
34
<Columns>
35
<asp:TemplateField>
36
<itemtemplate>
37
<A id='<%#Eval("ID") %>' onclick="ShowHidden('<%#Eval("id") %>',event)" href="#">
38
<IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" id='img<%# Eval("ID")%>'
39
alt="展开/折叠" src="../CommonFiles/images/close1.gif" /> <%# Eval("name")%></A>
40
<asp:Label ID="lbl_ID" runat="server" Text='<%#Eval("id") %>' style="display:none;"></asp:Label>
41
<div id="div<%# Eval("ID")%>" >
42
<asp:GridView id="gvlink" runat="server" CssClass="inputAwoke" Width="92%" AutoGenerateColumns="False"
43
ShowHeader="False" BorderWidth="0px" HorizontalAlign="Center">
44
<EmptyDataRowStyle HorizontalAlign="Center" />
45
<HeaderStyle ForeColor="White" HorizontalAlign="Center" CssClass="GridViewHeader" />
46
<PagerSettings Visible="False" />
47
<Columns>
48
<asp:TemplateField>
49
<itemtemplate>
50
<a href="<%# Eval("UrlPath")%>" target="_blank"><%# Eval("name")%></a>
51
</itemtemplate>
52
<ItemStyle CssClass="GridViewItem" />
53
</asp:TemplateField>
54
</Columns>
55
</asp:GridView>
56
57
</div>
58
</itemtemplate>
59
<ItemStyle CssClass="GridViewItem" />
60
</asp:TemplateField>
61
</Columns>
62
63
</asp:GridView>
64
</div>
65
</itemtemplate>
66
<ItemStyle CssClass="GridViewItem" />
67
</asp:TemplateField>
68
69
</Columns>
70
</asp:GridView>
71
72
</form>
73
</body>
![](/Images/OutliningIndicators/None.gif)
2
![](/Images/OutliningIndicators/None.gif)
3
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
4
![](/Images/OutliningIndicators/InBlock.gif)
5
![](/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
6
![](/Images/OutliningIndicators/InBlock.gif)
7
![](/Images/OutliningIndicators/InBlock.gif)
8
![](/Images/OutliningIndicators/InBlock.gif)
9
![](/Images/OutliningIndicators/InBlock.gif)
10
![](/Images/OutliningIndicators/InBlock.gif)
11
![](/Images/OutliningIndicators/InBlock.gif)
12
![](/Images/OutliningIndicators/InBlock.gif)
13
![](/Images/OutliningIndicators/ExpandedBlockEnd.gif)
14
![](/Images/OutliningIndicators/None.gif)
15
![](/Images/OutliningIndicators/None.gif)
16
![](/Images/OutliningIndicators/None.gif)
17
![](/Images/OutliningIndicators/None.gif)
18
![](/Images/OutliningIndicators/None.gif)
19
![](/Images/OutliningIndicators/None.gif)
20
![](/Images/OutliningIndicators/None.gif)
21
![](/Images/OutliningIndicators/None.gif)
22
![](/Images/OutliningIndicators/None.gif)
23
![](/Images/OutliningIndicators/None.gif)
24
![](/Images/OutliningIndicators/None.gif)
25
![](/Images/OutliningIndicators/None.gif)
26
![](/Images/OutliningIndicators/None.gif)
27
![](/Images/OutliningIndicators/None.gif)
28
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
29
![](/Images/OutliningIndicators/None.gif)
30
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
31
![](/Images/OutliningIndicators/None.gif)
32
![](/Images/OutliningIndicators/None.gif)
33
![](/Images/OutliningIndicators/None.gif)
34
![](/Images/OutliningIndicators/None.gif)
35
![](/Images/OutliningIndicators/None.gif)
36
![](/Images/OutliningIndicators/None.gif)
37
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
38
![](/Images/OutliningIndicators/None.gif)
39
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
40
![](/Images/OutliningIndicators/None.gif)
41
![](/Images/OutliningIndicators/None.gif)
42
![](/Images/OutliningIndicators/None.gif)
43
![](/Images/OutliningIndicators/None.gif)
44
![](/Images/OutliningIndicators/None.gif)
45
![](/Images/OutliningIndicators/None.gif)
46
![](/Images/OutliningIndicators/None.gif)
47
![](/Images/OutliningIndicators/None.gif)
48
![](/Images/OutliningIndicators/None.gif)
49
![](/Images/OutliningIndicators/None.gif)
50
![](/Images/OutliningIndicators/ExpandedBlockStart.gif)
51
![](/Images/OutliningIndicators/None.gif)
52
![](/Images/OutliningIndicators/None.gif)
53
![](/Images/OutliningIndicators/None.gif)
54
![](/Images/OutliningIndicators/None.gif)
55
![](/Images/OutliningIndicators/None.gif)
56
![](/Images/OutliningIndicators/None.gif)
57
![](/Images/OutliningIndicators/None.gif)
58
![](/Images/OutliningIndicators/None.gif)
59
![](/Images/OutliningIndicators/None.gif)
60
![](/Images/OutliningIndicators/None.gif)
61
![](/Images/OutliningIndicators/None.gif)
62
![](/Images/OutliningIndicators/None.gif)
63
![](/Images/OutliningIndicators/None.gif)
64
![](/Images/OutliningIndicators/None.gif)
65
![](/Images/OutliningIndicators/None.gif)
66
![](/Images/OutliningIndicators/None.gif)
67
![](/Images/OutliningIndicators/None.gif)
68
![](/Images/OutliningIndicators/None.gif)
69
![](/Images/OutliningIndicators/None.gif)
70
![](/Images/OutliningIndicators/None.gif)
71
![](/Images/OutliningIndicators/None.gif)
72
![](/Images/OutliningIndicators/None.gif)
73
![](/Images/OutliningIndicators/None.gif)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步