|
TreeView
|
|||
---|---|---|---|
#18+
Не работает. Что не так в конструкции? Надо создать многоуровневую вложенность private void FillNodes() { this.tV1.Nodes.Clear(); int itn1 = tV1.Nodes.Add(new TreeNode("Главный" )); int itn2 = tV1.Nodes[itn1].Nodes.Add(new TreeNode("Подчиненнный " + itn1.ToString () )); int itn3 = tV1.Nodes[itn2].Nodes.Add(new TreeNode("Подчиненнный 1 " + itn2.ToString())); int itn4 = tV1.Nodes[itn3].Nodes.Add(new TreeNode("Подчиненнный 2 " + itn3.ToString())); } "Подчиненнный 1 " не становится дочерним к "Подчиненнный ". "Подчиненнный 2 " не появляется. Примеры смотрел конструкция типа tV1.Nodes[].Nodes[].Nodes[].Nodes ... не устраивает вопрос в многоуровневой рекурсии. Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2014, 15:45 |
|
TreeView
|
|||
---|---|---|---|
#18+
Draginsv, Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2014, 16:00 |
|
TreeView
|
|||
---|---|---|---|
#18+
petalvik , спасибо! попробую разобраться. вот что надыбал private void FillNodes() { this.tV1.Nodes.Clear(); TreeNode tn1 = tV1.Nodes.Add ("Главный"); TreeNode tn2 = tn1.Nodes.Add("Подчиненнный"); TreeNode tn3 = tn2.Nodes.Add("Подчиненнный 1 "); TreeNode tn4 = tn3.Nodes.Add("Подчиненнный 2 "); } ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2014, 16:07 |
|
TreeView
|
|||
---|---|---|---|
#18+
В общем склепал такую рекурсию private void FillTree() { this.tV1.Nodes.Clear(); using (SqlConnection cnn = new SqlConnection(sconn)) { try { string sql = "select * from T2 where IdParent is null"; cnn.Open(); SqlDataAdapter sda = new SqlDataAdapter(sql, cnn); DataSet ds = new DataSet (); sda.Fill(ds, "T2"); TreeNode tn; foreach (DataRow dr in ds.Tables["T2"].Rows) { tn = tV1.Nodes.Add(dr["Description"].ToString()); FillTreeChild((int)dr[0], tn); } } catch (SqlException ex) { MessageBox.Show("Ошибка! " + ex.Message); } } } private void FillTreeChild(int Id, TreeNode tn) { using (SqlConnection cnn = new SqlConnection(sconn)) { try { string sql = "select * from T2 where IdParent = " + Id.ToString(); cnn.Open(); SqlDataAdapter sda = new SqlDataAdapter(sql, cnn); DataSet ds = new DataSet (); sda.Fill(ds, "T2"); TreeNode tnc; foreach (DataRow dr in ds.Tables["T2"].Rows) { tnc = tn.Nodes.Add(dr["Description"].ToString()); FillTreeChild((int)dr[0], tnc); } } catch (SqlException ex) { MessageBox.Show("Ошибка! " + ex.Message); } } } но не красиво, что в реализовано в двух методах и не по коллекции строк sda за один проход. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2014, 16:12 |
|
TreeView
|
|||
---|---|---|---|
#18+
Draginsv, используй тэги оформления кода - FAQ ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2014, 16:52 |
|
TreeView
|
|||
---|---|---|---|
#18+
Пробую Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Понял, спасибо за замечание. Согласен, недочет. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2014, 19:56 |
|
|
start [/forum/topic.php?fid=20&msg=38554978&tid=1403294]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 171ms |
0 / 0 |