teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

修正

2020/04/23 10:15

投稿

culych
culych

スコア8

title CHANGED
@@ -1,1 +1,1 @@
1
- 動的追加したTreeviewの情報を取得し、Panelに詳細情報を表示したいです。
1
+ TreeviewのNode設定したValue値を取得したいです。
body CHANGED
@@ -2,14 +2,14 @@
2
2
 
3
3
  ASP.NET Web Formsで以下の一連の流れを実装したいです。
4
4
 
5
- 1. 画面左側にTreeView表示用panel、画面右側にTreeView詳細情報表示用panelを用意
5
+ 1. 画面左側にTreeView表示、画面右側にTreeView詳細情報表示用divを用意
6
- 2. DBから取得したデータを元に、動的にTreeViewを作成
6
+ 2. DBから取得したデータをTreeViewにバインド
7
+ 3. 各ノードのvalue値にテーブルの主キーを設定
7
- 3. 画面上でクリックされたノードの情報を取得
8
+ 4. 画面上で選択されたノードのvalue値を取得
8
- 4. ドの情報からDB設定されていを取得
9
+ 5. value値(主キ)該当すテーブルのレコードを取得
9
- 5. 取得した値をTreeView詳細情報表示用panel設定
10
+ 6. 取得した値を詳細画面表示用div表示
10
11
 
11
- 動的にTreeViewを追加する事には成功しました。
12
- しかし、TreeViewから選択したノード情報を取得する方法がわからないです
12
+ 上記の流れの中でTreeViewから選択したノードのvalue値を取得する方法がわかりません
13
13
 
14
14
  どなたかご教授いただければ幸いです。
15
15
 
@@ -18,11 +18,9 @@
18
18
 
19
19
 
20
20
 
21
- # 動的にTreeViewを追加したコード
21
+ # TreeView表示コード
22
22
  ```HTML
23
- <%@ Page Title="" Language="C#" MasterPageFile="~/webMasterPage.Master"
23
+ <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.Master" AutoEventWireup="true" CodeBehind="TreeView.aspx.cs" Inherits="TreeView.TreeView" %>
24
- AutoEventWireup="true" CodeBehind="BulletinBoardList.aspx.cs"
25
- Inherits="ASP_app.BulletinBoardList" %>
26
24
 
27
25
  <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
28
26
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
@@ -34,9 +32,11 @@
34
32
  <asp:Label ID="lblTitle" runat="server" Text="掲示板" CssClass="title"></asp:Label>
35
33
  </div>
36
34
  <asp:LinkButton ID="btnRegist" runat="server" OnClick="btnRegist_Click" OnClientClick="return btnRegister_Click()" class="portalBtn board-margin-bottom">新規登録</asp:LinkButton>
37
- <hr class="hr" />
35
+ <hr />
38
- <asp:Panel ID="pnlTree" runat="server" Style="width:20%;float:left"></asp:Panel>
36
+ <div id="divTree" runat="server" style="width: 20%; float: left">
37
+ <asp:TreeView ID="TreeView1" runat="server"></asp:TreeView>
38
+ </div>
39
- <asp:Panel ID="pnlDetail" runat="server" Style="width:80%;float:right"></asp:Panel>
39
+ <div id="divDetail" runat="server" style="width: 80%; float: right"></div>
40
40
  </div>
41
41
  </asp:Content>
42
42
  ```
@@ -50,15 +50,13 @@
50
50
  using System.Web.UI;
51
51
  using System.Web.UI.WebControls;
52
52
 
53
- namespace ASP_app
53
+ namespace TreeView
54
54
  {
55
- public partial class BulletinBoardList : System.Web.UI.Page
55
+ public partial class TreeView : System.Web.UI.Page
56
56
  {
57
- private TreeView treeView = new TreeView();
58
-
59
57
  protected void Page_Load(object sender, EventArgs e)
60
58
  {
61
- if(IsPostBack==true){return;}
59
+ if (IsPostBack == true) { return; }
62
60
  set_treeMenuList();
63
61
  }
64
62
 
@@ -72,37 +70,33 @@
72
70
  TreeNode parent = new TreeNode();
73
71
  TreeNode child = new TreeNode();
74
72
 
75
-
76
73
  string strSql = $" SELECT p.parentID as pID,p.BoardName as pName,c.childID as cID,c.TreadName as cName"
77
74
  + $" FROM parent p"
78
75
  + $" INNER JOIN child c"
79
- + $" ON p.parentID=c.childID"
76
+ + $" ON p.parentID=c.childID";
80
77
 
81
- //データベースに接続
78
+ //データベースに接続
82
- DataTable dtTree = ----;
79
+ DataTable dtTree = ----;
83
80
 
84
- foreach (DataRow rowParent in dtTree.Rows)
81
+ foreach (DataRow rowParent in dtTree.Rows)
82
+ {
83
+ // 親ノード作成
84
+ if (parent.Value != rowParent["pID"].ToString())
85
85
  {
86
- // 親ノード作成
86
+ parent = new TreeNode();
87
- if (parent.Value != rowParent["pID"].ToString())
87
+ parent.Value = rowParent["pID"].ToString();
88
+ parent.Text = rowParent["pName"].ToString();
89
+ TreeView1.Nodes.Add(parent);
90
+
91
+ foreach (DataRow rowChild in dtTree.Rows)
88
92
  {
89
- parent = new TreeNode();
93
+ // 子ノード作成
90
- parent.Value = rowParent["pID"].ToString();
94
+ if (parent.Value == rowChild["pID"].ToString())
91
- parent.Text = rowParent["pName"].ToString();
92
- treeView.Nodes.Add(parent);
93
-
94
-
95
- foreach (DataRow rowChild in dtTree.Rows)
96
95
  {
97
- // 子ノード作成
98
- if (parent.Value ==rowChild["pID"].ToString())
99
- {
100
- child = new TreeNode();
96
+ child = new TreeNode();
101
- child.Value =rowChild["cID"].ToString();
97
+ child.Value = rowChild["cID"].ToString();
102
- child.Text =rowChild["cName"].ToString();
98
+ child.Text = rowChild["cName"].ToString();
103
- parent.ChildNodes.Add(child);
99
+ parent.ChildNodes.Add(child);
104
- pnlTree.Controls.Add(treeView);
105
- }
106
100
  }
107
101
  }
108
102
  }

2

環境情報の修正

2020/04/23 10:15

投稿

culych
culych

スコア8

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,6 @@
1
1
  # 実装したいこと
2
2
 
3
- 以下の一連の流れを実装したいです。
3
+ ASP.NET Web Formsで以下の一連の流れを実装したいです。
4
4
 
5
5
  1. 画面左側にTreeView表示用panel、画面右側にTreeView詳細情報表示用panelを用意
6
6
  2. DBから取得したデータを元に、動的にTreeViewを作成
@@ -118,7 +118,7 @@
118
118
  C#
119
119
  VisualStudio2017
120
120
  Windows10
121
- .NET 4.0
121
+ .NET 4.8
122
122
  SQLServer
123
123
  →エディション:MicrosoftSQLServerDeveloper(64-bit)
124
124
  →バージョン:15.0.2000.5

1

環境情報の修正

2020/04/23 06:54

投稿

culych
culych

スコア8

title CHANGED
File without changes
body CHANGED
@@ -115,5 +115,11 @@
115
115
  ```
116
116
  # 環境
117
117
  ASP.net
118
+ C#
118
119
  VisualStudio2017
120
+ Windows10
121
+ .NET 4.0
122
+ SQLServer
123
+ →エディション:MicrosoftSQLServerDeveloper(64-bit)
124
+ →バージョン:15.0.2000.5
119
125
  SQLServerManagementStudio2019