今天在开发遇到一个问题,需求三层嵌套,于是根据孟子的两层嵌套加折叠的基础上,增加为三层嵌套!
下面为效果图:
下面为效果图:
1
protected
void
Page_Load(
object
sender, EventArgs e)
2 {
3 if (!IsPostBack)
4 {
5 BindParent();
6 }
7 }
8
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
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
32
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 }
2 {
3 if (!IsPostBack)
4 {
5 BindParent();
6 }
7 }
8
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
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
32
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 }
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") % > ' οnclick="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") % > ' οnclick="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 >
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") % > ' οnclick="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") % > ' οnclick="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 >