Кнопки добавления / редактирования / удаления для элемента управления Telerik RadTreeView - PullRequest
3 голосов
/ 12 февраля 2020

В настоящее время я использую элемент управления RadTreeView Telerik для отображения иерархических данных вместе с функциями добавления / редактирования / удаления для каждого узла. Используя TreeView - контекстное меню , это было достигнуто, но я пытаюсь реализовать его, как показано ниже:

enter image description here

Это работает следующим образом: a) Когда узел раскрывается нажатием значка «+», кнопка «Добавить группу» отображается внизу его последнего дочернего элемента. б) Когда выбран узел, появляются значки «Редактировать» и «Удалить».

При нажатии на любой из этих значков открывается диалоговое окно для соответствующих действий.

Итак, мне нужно заменить Контекстное меню с отображением дисплея в макете. Я попытался использовать NodeTemplate что-то вроде ниже:

<NodeTemplate>
        <div>
            <span>Test</span>
        </div>
    </NodeTemplate>

, но он делает текст всех узлов "Test".

Может кто-нибудь, пожалуйста, помогите мне

Ответы [ 2 ]

2 голосов
/ 24 февраля 2020
<script type="text/javascript">
    function OnClientContextMenuItemClicking(sender, args)
     {
        var menuItem = args.get_menuItem();
        var treeNode = args.get_node();
        menuItem.get_menu().hide();
        switch (menuItem.get_value())
         {
            case "edit":
                treeNode.startEdit();
                break;
         }
     }
</script>

Надеюсь, это поможет,

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

Я реализовал RadTreeView на стороне сервера. Хотя со стороны сервера это легко сделать, особенно когда речь идет о привязке и обработке событий

Это мой файл Default.aspx.cs

using Telerik.Web.UI;

 public partial class Default : System.Web.UI.Page 
    {
        private void Page_Load(object sender, System.EventArgs e)
        {

        }

        protected void RadTreeView1_NodeEdit(object sender, RadTreeNodeEditEventArgs e)
        {
          // This is the serverside event that is triggered on Edit
            RadTreeNode nodeEdited = e.Node;  // This is the current node that is clicked
            string newText = e.Text;
            nodeEdited.Text = newText;
        }

      //
      //.........
      //.........
    }

Это что-то лишнее. На стороне сервера вы также можете найти такой узел:

RadTreeNode node = RadTreeView1.FindNodeByText("TestOne");
// now edit and change any test
node.Text = "Test";  

Надеюсь, это поможет.

...