|
|
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Возникла проблема при заполнении TreeView. TreeView вместе с корневым узлом у меня создан статически, все остальные узлы создаются динамически. При запуске страницы выводится название корневого узла(без плюсика для раскрытия), а под названием выводится весь список марок автомобилей(тоже без плюсиков). Нужно же, чтобы это происходило при раскрытии плюсика. И второе: как мне взять значение элемента марки? У меня в обработчик поступает название узла "Марки", а мне нужно значения узлов. Вот код методов : Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 22:17:28 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
а где код статической части, скорее всего неправильно вы итемы добавили, марки автомобилей не являются child а добавлены просто как узлы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 22:23:54 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
Добавляйте все сразу динамически (рекурсивно) , заодно будете проверять есть ли у подчиненные узлы и выставлять PopulateOnDemand и если не нужно давать выбрать родителя при "живых" потомках будете упарвлять SelectAction у TreeNode ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 22:27:39 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
erman Select nameModel From Models where Models.brandId in (Select IdBrand where Brands.brandOfCar = @nameBrand)" У вас что бренды и марки в одной таблице ? и brandOfCar varchar ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 22:33:04 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
... NewNode = new TreeNode(row["brandOfCar"].ToString(),row["brandOfCarID"] ); ... SqlCommand sqlQuery = new SqlCommand(); sqlQuery.CommandText = "Select nameModel From Models where Models.brandId = @BrandID)"; sqlQuery.Parameters.Add("@BrandID", SqlDbType.int).Value = node.Value; По ключу и без вложенных запросов наверное быстрее искать будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 22:49:08 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
Andrey1306а где код статической части, скорее всего неправильно вы итемы добавили, марки автомобилей не являются child а добавлены просто как узлы <asp:TreeView ID="TreeView1" runat="server" ontreenodepopulate="TreeView1_TreeNodePopulate"> <Nodes> <asp:TreeNode PopulateOnDemand="True" Text="Марки" Value="Марки"></asp:TreeNode> </Nodes> </asp:TreeView> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 23:12:15 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
Andrey1306ermanSelect nameModel From Models where Models.brandId in (Select IdBrand where Brands.brandOfCar = @nameBrand)" У вас что бренды и марки в одной таблице ? и brandOfCar varchar ??? У меня бренды и есть марки - таблица Brands. brandOfCar типа nvarchar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 23:16:43 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
erman, да я увидел уже, просто меня смутил вот этот синтаксис , без FROM во вложеном запросе, и что такой синтаксис без ошибок работает "Select nameModel From Models where Models.brandId in (Select IdBrand where Brands.brandOfCar = @nameBrand)"; Вы попробуйте тут вот так сделать Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 23:23:25 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
parent.node.add(NewNode); У меня здесь ещё нет node - ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 23:36:45 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
erman, уберите из декларативного обьявления Код: html 1. 2. 3. и тогда как то так Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.01.2012, 23:45:28 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
parent.node.add(NewNode); - что такое это node у вас? Оно же должно где-то объявляться или как... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 00:18:36 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
ermanparent.node.add(NewNode); - что такое это node у вас? Оно же должно где-то объявляться или как... parent.nodes.add(NewNode) студии под рукою нету, могу в синтаксисе напутать. ВАм нужно к паренту присобачить все свои узлы а потом сам парент уже к контролу девевяному ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 00:20:21 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
Сделал таким образом : Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Коллекции nodes нет. В результате получил исключение выхода за пределы массива. Что здесь не то? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 11:28:49 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
TreeNode parent = new TreeNode("Марки", "Марки"); вместо TreeNode parent = TreeView1.Nodes[0]; Вы же ноды удалили из aspx , откуда им там взятся ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 11:46:59 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
Спасибо, это заработало. Может ещё подскажете как заполнить узлы, которые удалось вывести? Нужно писать событие динамически или как, писать делегат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 14:37:05 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
ermanСпасибо, это заработало. Может ещё подскажете как заполнить узлы, которые удалось вывести? Нужно писать событие динамически или как, писать делегат? Не понят вопрос ! Как в узел добавить данные при развороте его ? Так все было сделано у Вас Код: c# 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 14:48:53 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
Код: c# 1. 2. Выделенный код возвращает не название марки авто, а слово "Марки" и по этому слову происходит поиск в БД и соответственно ничего не выводится. Нужно вернуть значения подузлов "Марки". Как это сделать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 15:56:41 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
erman, Nodes[0].Value вообще то , я бы использовал для айди, а не для текста. и искал по нему. Так было бы правильно. а искать ну как-то так foreach (TreeNode child in TreeView1.Nodes[0] /*Узел относительного которого ищем*/ ) { // child используем и если сильно ветвление то рукурсивно обраьывать дальше } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 16:06:17 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
А как взять Id динамически созданного узла? Разве у него есть Id? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 16:43:33 |
|
||
|
Вывод информации в TreeView
|
|||
|---|---|---|---|
|
#18+
Andrey1306... NewNode = new TreeNode(row["brandOfCar"].ToString(),row["brandOfCarID"] ); /*А это для чего !!!!!!!!!!!!!!!!!*/ ... SqlCommand sqlQuery = new SqlCommand(); sqlQuery.CommandText = "Select nameModel From Models where Models.brandId = @BrandID)"; sqlQuery.Parameters.Add("@BrandID", SqlDbType.int).Value = node.Value; По ключу и без вложенных запросов наверное быстрее искать будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2012, 17:04:54 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=37619050&tid=1360048]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
360ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 681ms |

| 0 / 0 |
