Просмотр дерева — выбранный параметр не работает для добавленной гиперссылки

#asp.net

#asp.net

Вопрос:

В следующем коде

  <asp:TreeNode Text="node text here <a>Click</a>" Value="1" Expanded="False">
   <asp:TreeNode Text="er" Value="0"></asp:TreeNode>                              
   <asp:TreeNode Text="err" Value="1"></asp:TreeNode>
   <asp:TreeNode Text="err" Value="2"></asp:TreeNode>
 </asp:TreeNode>
  

У меня есть пользовательский код в событии ‘SelectedNodeChanged’. Это событие запускается, когда я нажимаю на текст узла («текст узла здесь»), но не запускается, когда я нажимаю на гиперссылку (привязанный тег «Click»). Как я могу заставить тег привязки также щелкать, чтобы он вел себя как ‘selectednodechanged’.

Комментарии:

1. вам необходимо предоставить код..

2. почему вы хотите добавить тег <a> ?

3. @Muhammad Akhtar : Это требование моего проекта. Мне нужен текст узла в элементе управления treeview и гиперссылка рядом с текстом каждого узла. Прямо сейчас, даже если текст узла и гиперссылка <a tag hyper находятся в одной строке, щелчок по гиперссылке не запускает событие ‘selectednodechanged’… Я должен явно щелкнуть по тексту узла, чтобы вызвать это.

4. @Akram Shahda — Спасибо, что взглянули. Это то, что у меня есть на данный момент. конец </asp:treenode> отсутствует в пятой строке кода выше…. У меня есть пара строк для тестирования кода в событии selectednodechanged, но это не имеет значения..

5. Внесены изменения в код .. пожалуйста, обратите внимание.

Ответ №1:

Щелчок по элементу и вызов обратной передачи при выборе узла должны произойти, потому что на узле должно произойти __doPostBack срабатывание a; поскольку гиперссылка обрабатывает свой собственный щелчок, вы могли бы попробовать также обработать событие click для ссылки, а затем вручную вызвать __doPostBack самостоятельно. Взгляните на отображаемую разметку и найдите любые существующие __doPostBack инструкции, и вам придется эмулировать это.

HTH.

Комментарии:

1. Вы имеете в виду вот так.. <a onClick=»Somefunction();»> а затем в javascript напишите _doPostBack для этой функции. Это идея? не могли бы вы уточнить, если можете .. спасибо

2. Да, или <a onclick=»__doPostBack(‘<идентификатор элемента управления>’, ‘<команда>’);»> Содержимое</a>. Проблема в том, что комбинация идентификатор элемента управления / команда — это уникальная комбинация, в которой вам нужно убедиться, что вы передаете правильные значения, поэтому вы должны изучить содержимое…

3. Ошибка 4 System.Web.UI.WebControls. В TreeNodeCollection должны быть элементы типа ‘System.Web.UI.WebControls. TreeNode’. ‘a’ имеет тип ‘System.Web.UI.HtmlControls. HtmlAnchor’ — Когда я посмотрел исходный код и добавил два параметра для ControlID и Command. Я что-то пропустил?

4. В HTML? Если HTML, вы не должны получать подобную ошибку на стороне сервера… Похоже, что он интерпретирует <a> как серверный элемент управления. Определен ли у вас runat =»сервер»? Это не должно быть установлено…

5. Но тег <a> добавляется внутри текстового свойства элемента управления TreeView … нигде не определен runat =»server». Вот код, который у меня есть на данный момент. <asp:TreeNode Text=»Текст здесь <a onClick=»__doPostBack(‘ctl00 $ MainContent $ TabContainer1 $ TabPanel3 $ treeView1 amp; # 39’, ‘sImgSfrt amp; # 39’);»> Добавить </a>» Значение =»imgsf» Расширенное =»False»> <asp:TreeNode Text= Значение «asdasd»=»0»></asp:TreeNode> </asp:TreeNode>