作成日: 2016/06/20 最終更新日: 2016/06/20
文書種別
使用方法
詳細
C1TreeViewはXMLやSiteMapのような階層的な構造化データソースを必要とするため、DataTableなどを直接バインドすることはできません。
データソースとしてDataTableやDataSetを使用する場合は、親ノードと子ノードの構造やひも付けなど、すべて手動で行っていただく必要がございます。
◎サンプルコード (Visual Basic)
◎サンプルコード (C#)
データソースとしてDataTableやDataSetを使用する場合は、親ノードと子ノードの構造やひも付けなど、すべて手動で行っていただく必要がございます。
◎サンプルコード (Visual Basic)
' テスト用DataTable
Dim dt As New DataTable("MyTable")
dt.Columns.Add("ID", GetType(Integer))
dt.Columns.Add("ParentID", GetType(Integer))
dt.Columns.Add("Name", GetType([String]))
dt.Rows.Add(New Object() {0, -1, "Bill"})
dt.Rows.Add(New Object() {1, 0, "Steve"})
dt.Rows.Add(New Object() {3, 1, "Mary"})
dt.Rows.Add(New Object() {2, 0, "Paul"})
dt.Rows.Add(New Object() {4, 2, "Ahmed"})
dt.Rows.Add(New Object() {5, 2, "Wing"})
Dim node, parentNode As C1TreeViewNode
For i As Integer = 0 To dt.Rows.Count - 1
node = New C1TreeViewNode()
node.Text = dt.Rows(i)("Name")
node.Value = dt.Rows(i)("ID")
If dt.Rows(i)("ParentID") = -1 Then
' ルートとなるノード
C1TreeView1.Nodes.Add(node)
Else
' 各親ノードに子ノードをひも付け
parentNode = C1TreeView1.FindNodeByValue(dt.Rows(i)("ParentID"))
If parentNode IsNot Nothing Then
parentNode.Nodes.Add(node)
End If
End If
Next
Dim dt As New DataTable("MyTable")
dt.Columns.Add("ID", GetType(Integer))
dt.Columns.Add("ParentID", GetType(Integer))
dt.Columns.Add("Name", GetType([String]))
dt.Rows.Add(New Object() {0, -1, "Bill"})
dt.Rows.Add(New Object() {1, 0, "Steve"})
dt.Rows.Add(New Object() {3, 1, "Mary"})
dt.Rows.Add(New Object() {2, 0, "Paul"})
dt.Rows.Add(New Object() {4, 2, "Ahmed"})
dt.Rows.Add(New Object() {5, 2, "Wing"})
Dim node, parentNode As C1TreeViewNode
For i As Integer = 0 To dt.Rows.Count - 1
node = New C1TreeViewNode()
node.Text = dt.Rows(i)("Name")
node.Value = dt.Rows(i)("ID")
If dt.Rows(i)("ParentID") = -1 Then
' ルートとなるノード
C1TreeView1.Nodes.Add(node)
Else
' 各親ノードに子ノードをひも付け
parentNode = C1TreeView1.FindNodeByValue(dt.Rows(i)("ParentID"))
If parentNode IsNot Nothing Then
parentNode.Nodes.Add(node)
End If
End If
Next
◎サンプルコード (C#)
// テスト用DataTable
DataTable dt = new DataTable("MyTable");
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("ParentID", typeof(int));
dt.Columns.Add("Name", typeof(String));
dt.Rows.Add(new object[] { 0, -1, "Bill"});
dt.Rows.Add(new object[] { 1, 0, "Steve"});
dt.Rows.Add(new object[] { 3, 1, "Mary"});
dt.Rows.Add(new object[] { 2, 0, "Paul"});
dt.Rows.Add(new object[] { 4, 2, "Ahmed"});
dt.Rows.Add(new object[] { 5, 2, "Wing"});
C1TreeViewNode node;
for (int i = 0; (i <= (dt.Rows.Count - 1)); i++) {
node = new C1TreeViewNode();
C1TreeViewNode parentNode;
node.Text = dt.Rows[i]["Name"];
node.Value = dt.Rows[i]["ID"];
if ((dt.Rows[i]["ParentID"] == -1)) {
// ルートとなるノード
C1TreeView1.Nodes.Add(node);
}
else {
// 各親ノードに子ノードをひも付け
parentNode = C1TreeView1.FindNodeByValue(dt.Rows[i]["ParentID"]);
if (parentNode) {
IsNot;
null;
parentNode.Nodes.Add(node);
}
}
}
DataTable dt = new DataTable("MyTable");
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("ParentID", typeof(int));
dt.Columns.Add("Name", typeof(String));
dt.Rows.Add(new object[] { 0, -1, "Bill"});
dt.Rows.Add(new object[] { 1, 0, "Steve"});
dt.Rows.Add(new object[] { 3, 1, "Mary"});
dt.Rows.Add(new object[] { 2, 0, "Paul"});
dt.Rows.Add(new object[] { 4, 2, "Ahmed"});
dt.Rows.Add(new object[] { 5, 2, "Wing"});
C1TreeViewNode node;
for (int i = 0; (i <= (dt.Rows.Count - 1)); i++) {
node = new C1TreeViewNode();
C1TreeViewNode parentNode;
node.Text = dt.Rows[i]["Name"];
node.Value = dt.Rows[i]["ID"];
if ((dt.Rows[i]["ParentID"] == -1)) {
// ルートとなるノード
C1TreeView1.Nodes.Add(node);
}
else {
// 各親ノードに子ノードをひも付け
parentNode = C1TreeView1.FindNodeByValue(dt.Rows[i]["ParentID"]);
if (parentNode) {
IsNot;
null;
parentNode.Nodes.Add(node);
}
}
}
旧文書番号
81689