Можете ли вы получить доступ к идентификатору элемента управления, добавленному на страницу asp в коде позади - PullRequest
0 голосов
/ 05 февраля 2020

Я добавляю узлы в древовидную структуру в asp с помощью кода. Есть ли способ получить идентификатор узла после того, как я его добавил, пример кода:

e.Node.ChildNodes.Add()

Как я могу получить идентификатор узла, который я добавляю (или добавляю)? Просто чтобы быть понятным, я пытаюсь получить доступ к идентификатору, который будет на элементе на странице и может использоваться клиентским кодом.

Фрагмент кода добавления узлов:

Private Sub navTree_TreeNodePopulate(sender As Object, e As TreeNodeEventArgs) Handles navTree.TreeNodePopulate

Dim TestNode As New TreeNode TestNode.Text = "Test" e.Node.ChildNodes.Add(TestNode)

, но .add не имеет возвращаемого значения

1 Ответ

0 голосов
/ 06 февраля 2020

В VB каждый TreeNode имеет коллекцию дочерних узлов в своем свойстве ChildNodes. Метод Add возвращает void, так что это не поможет идентифицировать новый узел из вашего кода позади. Документы Microsoft описывают свойство TreeNode Value как «неотображаемое значение, используемое для хранения любых дополнительных данных об узле, таких как данные, используемые для обработки событий обратной передачи», и приводят пример использования его для хранения идентификатора (следуйте ссылку ниже, чтобы увидеть их пример)

Нечто подобное может работать в вашем случае:

//to add the node
Private Sub navTree_TreeNodePopulate(sender As Object, e As TreeNodeEventArgs) Handles navTree.TreeNodePopulate

Dim TestNode As New TreeNode
TestNode.Text = "This is a test node."
TestNode.Value= 123 //your data's ID
e.Node.ChildNodes.Add(TestNode)

//to find the node by its ID later you'll have to loop through the collection and look for `Value == 123`

Дополнительная информация: https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.treenode.value?view=netframework-4.8

...