Context Menu Disable Enable Condition and Node Name Validation.

4 posts, 0 answers
  1. Krantikumar Jain
    Krantikumar Jain avatar
    3 posts
    Member since:
    Feb 2010

    Posted 19 Feb 2010 Link to this post

    Hi

    I am using Treeview control to create Levels called Layers (folders) and insurers (Files). I have added Add Layer and Add Insurer Context Menu items when Right clicking on Layer. I want to achieve following things.

    1.Disable add new layer and add new Insurer context menu when you right click on an existing insurer name.

     2.Add validation to prevent adding two layers with the same name at same Layer?


    Thanks,
    Krantikumar Jain

    Below is my code.
    TRV_DEMO.aspx


    <%@ Page Language="vb" AutoEventWireup="false" Codebehind="TRV_DEMO.aspx.vb" ValidateRequest="false" Inherits="TreeViewControl.TRV_DEMO"
        Title="Tree View Control DEMO" %>

    <%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>Untitled Page</title>
    </head>
    <body>
        <form id="form1" runat="server">
            <table border="0" cellpadding="5" cellspacing="5" width="800" >
                <tr>
                    <td>
                        <div>
                            <asp:Panel runat="server" ID="pnl1" BorderColor="Maroon">
                                <table>
                                    <tr>
                                        <td style="height: 50px">
                                            <asp:Button ID="btnGrp" runat="server" Text="Add Layer" />
                                            <asp:Button ID="btnChild" runat="server" Text="Add Insurer" />
                                        </td>
                                        <td style="height: 50px">
                                            <asp:Button ID="btnInsurerDelete" runat="server" Text="Delete Insurer" /></td>
                                        <td style="height: 50px">
                                            <asp:Button ID="btnDeleteLayer" runat="server" Text="Delete Layer" /></td>
                                    </tr>
                                </table>
                            </asp:Panel>
                        </div>
                        <br />
                        <br />
                        <br />
                        <asp:Panel runat="server" ID="Pnl2">
                            <div>
                                <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
                                </telerik:RadScriptManager>
                                <script type="text/javascript">
                //<!--
                    function onClientContextMenuShowing(sender, args)
                    {
                        var treeNode = args.get_node();
                        treeNode.set_selected(true);
                        //enable/disable menu items
                        setMenuItemsState(args.get_menu().get_items(), treeNode);
                    }
                    
                    function onClientContextMenuItemClicking(sender, args)
                    {
                        var menuItem = args.get_menuItem();
                        var treeNode = args.get_node();
                        menuItem.get_menu().hide();
                        
                        switch(menuItem.get_value())
                        {
                            case "Copy":
                                break;
                            case "Rename":
                                treeNode.startEdit();
                                break;
                            case "NewLayer":
                                break;
                            case "NewInsurer":
                                break;    
                            case "Delete":
                                var result = confirm("Are you sure you want to delete the item: " + treeNode.get_text());
                                args.set_cancel(!result);
                                break;                            
                        }
                    }
     
               
                    //this method disables the appropriate context menu items
                    function setMenuItemsState(menuItems, treeNode)
                    {
                        for (var i=0; i<menuItems.get_count(); i++)
                        {
                            var menuItem = menuItems.getItem(i);
                            switch(menuItem.get_value())
                            {
                                case "Copy":
                                    formatMenuItem(menuItem, treeNode, 'Copy "{0}"');
                                    break;
                                case "Rename":
                                    formatMenuItem(menuItem, treeNode, 'Rename "{0}"');
                                    break;
                                case "Delete":
                                    formatMenuItem(menuItem, treeNode, 'Delete "{0}"');
                                    break;                                
                                case "NewLayer":
                                    if (treeNode.get_parent() == treeNode.get_treeView())
                                    {
                                        menuItem.set_enabled(true);
                                    }
                                    else
                                    {
                                        menuItem.set_enabled(true);
                                    }
                              
                                    break;
                                case "NewInsurer":
                                    if (treeNode.get_parent() == treeNode.get_treeView())
                                    {
                                        menuItem.set_enabled(true);
                                    }
                                    else
                                    {
                                        menuItem.set_enabled(true);
                                    }
                              
                                    break;    
                            }
                        }
                    }
                    
                    //formats the Text of the menu item
                    function formatMenuItem(menuItem, treeNode, formatString)
                    {
                        var nodeValue = treeNode.get_value();
                        if (nodeValue && nodeValue.indexOf("_Private_") == 0)
                        {
                            menuItem.set_enabled(false);
                        }
                        else
                        {
                            menuItem.set_enabled(true);
                        }
                        var newText = String.format(formatString, extractTitleWithoutMails(treeNode));
                        menuItem.set_text(newText);
                    }
                
                 //checks if the text contains (digit)
                    function hasNodeMails(treeNode)
                    {
                        return treeNode.get_text().match(/\([\d]+\)/ig);
                    }
                    
                    //removes the brackets with the numbers,e.g. Inbox (30)
                    function extractTitleWithoutMails(treeNode)
                    {
                        return treeNode.get_text().replace(/\s*\([\d]+\)\s*/ig, "");
                    }
                    
                //-->
                                </script>

                            </div>
                        </asp:Panel>
                        <table  style="border: solid 1px #000; width: 100%; height: 400px; overflow: auto; vertical-align: top;" cellpadding="5" cellspacing="5">
                            <tr>
                                <td>
                                    <asp:Panel runat="server" ID="pnlTV">
                                        <telerik:RadTreeView ID="RadTreeView1" runat="server" AllowNodeEditing="true" OnContextMenuItemClick="RadTreeView1_ContextMenuItemClick"
                                            OnClientContextMenuItemClicking="onClientContextMenuItemClicking" OnClientContextMenuShowing="onClientContextMenuShowing"
                                            OnNodeClick="RadTreeView1_NodeClick" OnNodeEdit="RadTreeView1_NodeEdit">
                                            <ContextMenus>
                                                <telerik:RadTreeViewContextMenu ID="MainContextMenu" runat="server">
                                                    <Items>
                                                        <telerik:RadMenuItem Value="Copy" Text="Copy ..." ImageUrl="">
                                                        </telerik:RadMenuItem>
                                                        <telerik:RadMenuItem Value="Rename" Text="Rename ..." Enabled="false" ImageUrl=""
                                                            PostBack="false">
                                                        </telerik:RadMenuItem>
                                                        <telerik:RadMenuItem Value="NewLayer" Text="New Layer" ImageUrl="">
                                                        </telerik:RadMenuItem>
                                                        <telerik:RadMenuItem Value="NewInsurer" Text="New Insurer" ImageUrl="">
                                                        </telerik:RadMenuItem>
                                                        <telerik:RadMenuItem Value="Delete" Text="Delete Folder" ImageUrl="">
                                                        </telerik:RadMenuItem>
                                                        <telerik:RadMenuItem IsSeparator="true">
                                                        </telerik:RadMenuItem>
                                                    </Items>
                                                    <CollapseAnimation Type="none" />
                                                </telerik:RadTreeViewContextMenu>
                                                <telerik:RadTreeViewContextMenu ID="EmptyLayerContextMenu" runat="server">
                                                    <Items>
                                                        <telerik:RadMenuItem Value="NewLayer" Text="New Layer" ImageUrl="">
                                                        </telerik:RadMenuItem>
                                                         <telerik:RadMenuItem Value="NewInsurer" Text="New Insurer" ImageUrl="">
                                                        </telerik:RadMenuItem>
                                                        <telerik:RadMenuItem IsSeparator="true">
                                                        </telerik:RadMenuItem>
                                                        <telerik:RadMenuItem Value="EmptyLayer" Text="Empty this Layer" ImageUrl="">
                                                        </telerik:RadMenuItem>
                                                    </Items>
                                                    <CollapseAnimation Type="none" />
                                                </telerik:RadTreeViewContextMenu>
                                            </ContextMenus>
                                            <Nodes>
                                                <telerik:RadTreeNode runat="server"  Text="POLICY" Expanded="true" ImageUrl="Images/Layer.jpg"  AllowDrag="false">
                                                </telerik:RadTreeNode>
                                            </Nodes>
                                        </telerik:RadTreeView>
                                    </asp:Panel>
                                </td>
                                <td>
                                    <div>
                                        <asp:Panel runat="server" ID="pnlGrp" Visible="false">
                                            <table border="2" cellpadding="5" cellspacing="5">
                                                <tr>
                                                    <td>
                                                        <asp:Label ID="Layer" runat="server" Text="Layer"></asp:Label>
                                                    </td>
                                                    <td>
                                                     <telerik:RadTextBox  ID="txtLayer" runat="server">
                                                      </telerik:RadTextBox>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        <asp:Label ID="Label2" runat="server" Text="Percentage (%)"></asp:Label>
                                                    </td>
                                                    <td>
                                                     <telerik:RadNumericTextBox  Type="Percent" ID="txtLayerPercentage" runat="server">
                                                            <NumberFormat AllowRounding="true" />
                                                      </telerik:RadNumericTextBox>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        <asp:Button ID="btnAddLayer" runat="server" Text="Add Layer" />
                                                    </td>
                                                    <td>
                                                        <asp:Button ID="btnEditLayer" runat="server" Text="Edit Layer" />
                                                    </td>
                                                </tr>
                                            </table>
                                        </asp:Panel>
                                    </div>
                                    <div>
                                        <asp:Panel runat="server" ID="pnlChild" Visible="false">
                                            <table border="2" cellpadding="5" cellspacing="5">
                                           <%--    <asp:DropDownList ID="ddInsurer" runat="server" OnSelectedIndexChanged="ddInsurer_SelectedIndexChanged">
                                                            <asp:ListItem>ALL STATE</asp:ListItem>
                                                            <asp:ListItem>NATION WIDE</asp:ListItem>
                                                            <asp:ListItem>PROGRESSIVE</asp:ListItem>
                                                            <asp:ListItem>GEICO</asp:ListItem>
                                                            <asp:ListItem>ESURANCE</asp:ListItem>
                                                            <asp:ListItem>AIG-AUTO</asp:ListItem>
                                                        </asp:DropDownList>
                                                    --%> <tr>
                                                    <td>
                                                        <asp:Label ID="lbleInsuree" runat="server" Text="Insurer"></asp:Label>
                                                    </td>
                                                    <td>
                                                      <telerik:RadComboBox AllowCustomText="true" Enabled="true" runat="server" ID="cmbInsurer" Width="150px">
                                                            <Items>
                                                                <telerik:RadComboBoxItem Text="" Value=""></telerik:RadComboBoxItem>
                                                                <telerik:RadComboBoxItem Text="21st Century" Value="21st Century"></telerik:RadComboBoxItem>
                                                                <telerik:RadComboBoxItem Text="ALL STATE" Value="ALL STATE"></telerik:RadComboBoxItem>
                                                                <telerik:RadComboBoxItem Text="FARMERS INSURANCE" Value="FARMERS INSURANCE"></telerik:RadComboBoxItem>
                                                                <telerik:RadComboBoxItem Text="NATION WIDE" Value="NATION WIDE"></telerik:RadComboBoxItem>
                                                                <telerik:RadComboBoxItem Text="PROGRESSIVE" Value="PROGRESSIVE"></telerik:RadComboBoxItem>
                                                                <telerik:RadComboBoxItem Text="GEICO" Value="GEICO"></telerik:RadComboBoxItem>
                                                                <telerik:RadComboBoxItem Text="ESURANCE" Value="ESURANCE"></telerik:RadComboBoxItem>
                                                                <telerik:RadComboBoxItem Text="AIG-AUTO" Value="AIG-AUTO"></telerik:RadComboBoxItem>
                                                            </Items>
                                                        </telerik:RadComboBox>
                                                    </td>
                                                </tr>    
                                                  <%--  <tr>
                                                        <td>
                                                            <asp:Label ID="Label1" runat="server" Text="Insurer"></asp:Label></td>
                                                        <td>
                                                        <telerik:RadTextBox  ID="txtInsurer" runat="server">
                                                          </telerik:RadTextBox>
                                                        </td>
                                                    </tr>--%>
                                                <tr>
                                                    <td>
                                                        <asp:Label ID="InsPer" runat="server" Text="Percentage (%)"></asp:Label>
                                                    </td>
                                                    <td>
                                                     <telerik:RadNumericTextBox  Type="Percent" ID="txtPercentage" runat="server">
                                                            <NumberFormat AllowRounding="true" />
                                                      </telerik:RadNumericTextBox>
                                                    </td>
                                                </tr>
                                                <tr>
                                                    <td>
                                                        <asp:Button ID="btnInsurerAdd" runat="server" Text="Add Insurer" />
                                                    </td>
                                                    <td>
                                                        <asp:Button ID="btnInsurerEdit" runat="server" Text="Edit Insurer" />
                                                    </td>
                                                </tr>
                                            </table>
                                        </asp:Panel>
                                    </div>
                                </td>
                            </tr>
                        </table>
                        <br />
                        <br />
                        <br />
                        <br />
                        <table>
                            <tr>
                                <td>
                                    <asp:Button ID="btnXML" runat="server" Text="Export XML" />
                                </td>
                                <td>
                                    <asp:Button ID="btnClear" runat="server" Text="Clear XML" Visible="false" />
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">
                                    <asp:TextBox ID="txtXML" runat="server" Height="294px" TextMode="MultiLine" Width="673px"
                                        Visible="false"></asp:TextBox></td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </table>
        </form>
    </body>
    </html>

    Code behind file TRV_DEMO.aspx.vb




    Imports System
    Imports System.Collections
    Imports System.ComponentModel
    Imports System.Data
    Imports System.Drawing
    Imports System.Web
    Imports System.Web.SessionState
    Imports System.Web.UI
    Imports System.Web.UI.WebControls
    Imports System.Web.UI.HtmlControls
    Imports System.Text.RegularExpressions
    Imports Telerik.Web.UI
    Imports System.IO
    Imports System.Xml


    Partial Public Class TRV_DEMO
        Inherits System.Web.UI.Page
        Protected Const unreadPattern As String = "\(\d+\)"

        'Diabled all the panels and Delete Layer and Delete Insure buttons
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            pnlGrp.Visible = False
            pnlChild.Visible = False
            btnDeleteLayer.Enabled = False
            btnInsurerDelete.Enabled = False


        End Sub

        Protected Sub btnGrp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGrp.Click

            'Enable the Group Layer creation panel
            pnlGrp.Visible = True
            pnlChild.Visible = False
            'Disable the Edit option while adding the Layer
            btnEditLayer.Visible = False
            btnAddLayer.Visible = True
            txtLayer.Text = ""
            txtLayerPercentage.Text = ""
        End Sub

        Protected Sub btnChild_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnChild.Click

            'Enable the Group Layer creation panel
            pnlChild.Visible = True
            pnlGrp.Visible = False

            'Disable the Edit option while adding the Insurer
            btnInsurerEdit.Visible = False
            btnInsurerAdd.Visible = True
            cmbInsurer.Text = ""
            txtPercentage.Text = ""
        End Sub



        'this method is used by Mark All as Read and Empty this folder
        Protected Sub EmptyLayer(ByVal node As RadTreeNode, ByVal removeChildNodes As Boolean)
            node.Font.Bold = False
            node.Text = Regex.Replace(node.Text, unreadPattern, "")

            If removeChildNodes Then
                'Empty this folder is clicked
                Dim i As Integer = node.Nodes.Count - 1
                While i >= 0
                    node.Nodes.RemoveAt(i)
                    System.Math.Max(System.Threading.Interlocked.Decrement(i), i + 1)
                End While
            Else
                'Mark all as read is clicked
                For Each child As RadTreeNode In node.Nodes
                    EmptyLayer(child, removeChildNodes)
                Next
            End If
        End Sub

        Protected Sub RadTreeView1_ContextMenuItemClick(ByVal sender As Object, ByVal e As RadTreeViewContextMenuEventArgs)
            Dim clickedNode As RadTreeNode = e.Node
            If (clickedNode.Value <> "") Then
                e.MenuItem.Enabled = False
            End If

            Select Case e.MenuItem.Value
                Case "Copy"
                    Dim clonedNode As RadTreeNode = clickedNode.Clone()
                    clonedNode.Text = String.Format("Copy of {0}", clickedNode.Text)
                    clickedNode.InsertAfter(clonedNode)
                    'set node's value so we can find it in startNodeInEditMode
                    clonedNode.Value = clonedNode.GetFullPath("/")
                    clonedNode.Selected = True
                    startNodeInEditMode(clonedNode.Value)
                    Exit Select
                Case "NewLayer"
                    Dim NewLayer As New RadTreeNode(String.Format("New Layer {0}", clickedNode.Nodes.Count + 1))
                    NewLayer.Selected = True
                    NewLayer.ImageUrl = clickedNode.ImageUrl
                    clickedNode.Nodes.Add(NewLayer)
                    clickedNode.Expanded = True
                    'update the number in the brackets
                    'If Regex.IsMatch(clickedNode.Text, unreadPattern) Then
                    '    clickedNode.Text = Regex.Replace(clickedNode.Text, unreadPattern, "(" + clickedNode.Nodes.Count.ToString() + ")")
                    'Else
                    '    clickedNode.Text += String.Format(" ({0})", clickedNode.Nodes.Count)
                    'End If
                    ' clickedNode.Font.Bold = True
                    'set node's value so we can find it in startNodeInEditMode
                    'NewLayer.Value = NewLayer.GetFullPath("/")
                    'startNodeInEditMode(NewLayer.Value)
                    Exit Select
                Case "NewInsurer"
                    Dim NewLayer As New RadTreeNode(String.Format("New Insurer {0}", clickedNode.Nodes.Count + 1))
                    NewLayer.Selected = True
                    NewLayer.ImageUrl = "Images/Insurer.jpg"
                    NewLayer.Value = "9"
                    clickedNode.Nodes.Add(NewLayer)
                    clickedNode.Expanded = True
                    'update the number in the brackets
                    'If Regex.IsMatch(clickedNode.Text, unreadPattern) Then
                    '    clickedNode.Text = Regex.Replace(clickedNode.Text, unreadPattern, "(" + clickedNode.Nodes.Count.ToString() + ")")
                    'Else
                    '    clickedNode.Text += String.Format(" ({0})", clickedNode.Nodes.Count)
                    'End If
                    ' clickedNode.Font.Bold = True
                    'set node's value so we can find it in startNodeInEditMode
                    'NewLayer.Value = NewLayer.GetFullPath("/")
                    'startNodeInEditMode(NewLayer.Value)
                    Exit Select
                Case "EmptyLayer"
                    EmptyLayer(clickedNode, True)
                    Exit Select
                Case "Delete"
                    clickedNode.Remove()
                    Exit Select
            End Select
        End Sub
        Private Sub startNodeInEditMode(ByVal nodeValue As String)
            'find the node by its Value and edit it when page loads
            Dim js As String = "Sys.Application.add_load(editNode); function editNode(){ "
            js += "var tree = $find(""" + RadTreeView1.ClientID + """);"
            js += "var node = tree.findNodeByValue('" + nodeValue + "');"
            js += "if (node) node.startEdit();"
            js += "Sys.Application.remove_load(editNode);};"

            RadScriptManager.RegisterStartupScript(Page, Page.[GetType](), "nodeEdit", js, True)
        End Sub

        Protected Sub btnAddLayer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAddLayer.Click

            'Dim foundNode As RadTreeNode = RadTreeView1.FindNodeByText("ROOT_NODE")
        
            ''TextBox1.Text = ""
            ''Dim foundNode As RadTreeNode = RadTreeView1.FindNodeByText("GROUP 2")
            'If foundNode IsNot Nothing Then
            '    tbResults.Text = foundNode.Text
            'End If
            Dim newNode As New RadTreeNode(RadTreeView1.SelectedNode.Text)
            'Dim rtv As New RadTreeView

            'rtv = RadTreeView1

            'If rtv.SelectedNode.Text = Nothing Then
            '    '    'nothing is selected then create LAYER under root node
            '    RadTreeView1.SelectedNode.Text = "POLICY"
            'End If

            newNode.Value = ""

            If (txtLayerPercentage.Text = "") Then
                txtLayer.Text = txtLayer.Text
            Else
                txtLayer.Text = txtLayer.Text & " (" & txtLayerPercentage.Text & "%" & ")"
            End If
            newNode.Text = txtLayer.Text
            newNode.ImageUrl = "Images/Layer.jpg"


            'RadTreeView1.Nodes.Add(newNode)
            RadTreeView1.SelectedNode.Nodes.Add(newNode)

            'Add to the dropdown box
            ' ddInsurer.Items.Add(New ListItem(newNode.Text))


        End Sub


        Protected Sub btnDeleteLayer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDeleteLayer.Click
            'TextBox1.Text = ""
            'If RadTreeView1.SelectedNode <> Nothing Then
            RadTreeView1.SelectedNode.Remove()
            ' or ...
            'RadTreeView1.Nodes.Remove(RadTreeView1.SelectedNode)
            ' or ...
            'RadTreeView1.SelectedNode.ParentNode.Nodes.RemoveAt(RadTreeView1.SelectedNode.Index)
            'End If

        End Sub

        Protected Sub btnInsurerAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsurerAdd.Click

            Dim newNode As New RadTreeNode()
            If (txtPercentage.Text = "") Then
                newNode.Text = cmbInsurer.Text
            Else
                newNode.Text = cmbInsurer.Text & " (" & txtPercentage.Text & "%" & ")"
            End If
            newNode.ImageUrl = "Images/Insurer.jpg"
            newNode.Value = "9"
            RadTreeView1.SelectedNode.Nodes.Add(newNode)
            'Add to the dropdown box
            '      ddInsurer.Items.Add(New ListItem(newNode.Text))


        End Sub

        Protected Sub btnXML_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXML.Click

            Dim tv As New RadTreeView

            txtXML.Text = ""
            tv.LoadXmlString(RadTreeView1.GetXml())
            txtXML.Text = RadTreeView1.GetXml()
            tv = RadTreeView1()

            txtXML.Visible = True

            exportToXml(RadTreeView1.GetXml(), "C:\\Temp\\cal_xml.xml")

        End Sub

        Public Shared Sub exportToXml(ByVal tv As String, ByVal filename As String)

            Dim XmlDocument As New XmlDocument()

            XmlDocument.LoadXml(tv)
            XmlDocument.Save(filename)

        End Sub


        Protected Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
            txtXML.Text = ""
        End Sub

        'Protected Sub ddInsurer_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ddInsurer.SelectedIndexChanged
        '     Dim strInsurer As String = ""

        '    strInsurer = ddInsurer.SelectedIndex

        'End Sub

        Protected Sub RadTreeView1_NodeClick(ByVal o As Object, ByVal e As Telerik.Web.UI.RadTreeNodeEventArgs) Handles RadTreeView1.NodeClick
            Dim str As String
            Dim numPos As Int32 = 1
            Dim strPer As String = "%"
            Dim numUSPos As Int32 = 1
            Dim numLen As Int32 = 0
            Dim numLenParent As Int32 = 0
            Dim strParent As String

            txtPercentage.Text = ""
            txtLayerPercentage.Text = ""
            strParent = e.Node.Text
            str = e.Node.Text
            numLen = Len(str)
            numLenParent = Len(strParent)
            numPos = InStr(str, strPer)
            numUSPos = InStr(str, "(")


            If InStr(str, "(") Then
                str = str.Substring(0, numUSPos - 1)
                txtLayerPercentage.Text = Trim(strParent.Substring(numUSPos, numLenParent - 2 - numUSPos))
                txtPercentage.Text = Trim(strParent.Substring(numUSPos, numLenParent - 2 - numUSPos))
            End If
            If str = "POLICY" Then
                pnlGrp.Visible = False
                pnlChild.Visible = False
                btnAddLayer.Visible = True
                btnEditLayer.Visible = False
                txtLayer.Text = ""
                btnDeleteLayer.Visible = True
                btnChild.Enabled = True
                btnGrp.Enabled = True
            Else
                If e.Node.Value = "" Then
                    'pnlGrp.Visible = True
                    'pnlChild.Visible = False
                    'btnAddLayer.Visible = False
                    'btnEditLayer.Visible = True
                    'txtLayer.Text = str
                    'btnDeleteLayer.Visible = True
                    'btnChild.Enabled = False
                    'btnGrp.Visible = True

                    pnlGrp.Visible = True
                    pnlChild.Visible = False
                    btnAddLayer.Visible = False
                    btnEditLayer.Visible = True
                    txtLayer.Text = str

                    btnDeleteLayer.Enabled = True
                    btnChild.Enabled = True
                    btnGrp.Enabled = True

                Else
                    'pnlChild.Visible = True
                    'pnlGrp.Visible = False
                    'btnInsurerAdd.Visible = False
                    'btnInsurerEdit.Visible = True
                    cmbInsurer.SelectedValue = str
                    'btnInsurerDelete.Visible = True
                    'btnGrp.Visible = True
                    'btnChild.Enabled = False
                    pnlChild.Visible = True
                    pnlGrp.Visible = False

                    btnInsurerAdd.Visible = False
                    btnInsurerEdit.Visible = True
                    cmbInsurer.Text = str
                    btnInsurerDelete.Enabled = True
                    btnGrp.Enabled = False
                    btnChild.Enabled = False

                End If
            End If

            'strParent = e.Node.ParentNode.Text.ToString()

        End Sub 'RadTreeView1_NodeClick

        Protected Sub RadTreeView1_NodeEdit(ByVal sender As Object, ByVal e As Telerik.Web.UI.RadTreeNodeEditEventArgs) Handles RadTreeView1.NodeEdit
            Dim nodeEdited As RadTreeNode = e.Node
            Dim newText As String = e.Text

            nodeEdited.Text = newText
        End Sub


        Protected Sub btnInsurerEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsurerEdit.Click
            If (txtPercentage.Text = "") Then
                RadTreeView1.SelectedNode.Text = cmbInsurer.Text
            Else
                RadTreeView1.SelectedNode.Text = cmbInsurer.Text & " (" & txtPercentage.Text & "%" & ")"
            End If


        End Sub

        Protected Sub btnEditLayer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEditLayer.Click
            If (txtLayerPercentage.Text = "") Then
                RadTreeView1.SelectedNode.Text = txtLayer.Text
            Else
                RadTreeView1.SelectedNode.Text = txtLayer.Text & " (" & txtLayerPercentage.Text & "%" & ")"
            End If
        End Sub


        Protected Sub btnInsurerDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInsurerDelete.Click
            'If RadTreeView1.SelectedNode <> Nothing Then
            RadTreeView1.SelectedNode.Remove()
            ' or ...
            'RadTreeView1.Nodes.Remove(RadTreeView1.SelectedNode)
            ' or ...
            'RadTreeView1.SelectedNode.ParentNode.Nodes.RemoveAt(RadTreeView1.SelectedNode.Index)
            'End If

        End Sub
    End Class



  2. Yana
    Admin
    Yana avatar
    4554 posts

    Posted 24 Feb 2010 Link to this post

    Hi Krantikumar Jain,

    For the first issue you can use OnClientContextMenuShowing event and enable/disable the items using the client-side API of the context menu.

    Regarding the second question, I suggest you use OnClientNodeEditing event and cancel the editing of the node in case there's another node with the same text.

    Regards,
    Yana
    the Telerik team

    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items.
  3. UI for ASP.NET Ajax is Ready for VS 2017
  4. Dave
    Dave avatar
    17 posts
    Member since:
    Jul 2005

    Posted 25 Aug 2012 Link to this post

    More broken links - waste of time.
  5. Kate
    Admin
    Kate avatar
    1898 posts

    Posted 27 Aug 2012 Link to this post

    Hi Dave,

    You can refer to the different help articles below:
    • Client-side API of the contextmenu:
    1. http://www.telerik.com/help/aspnet-ajax/menu-client-side-objects.html
    2. http://www.telerik.com/help/aspnet-ajax/menu-radmenuitem-client-side.html


    Kind regards,
    Kate
    the Telerik team
    Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
Back to Top