I have a treeview, that depending on if a check box is check will display either only nodes that are flagged as "Enabled" in the database, or all nodes. Depending on if a node is set as enabled I would like to attach one of two context menu's to it.
This is the error message I'm getting:
"Multiple controls with the same ID 'contextMenu1' were found. FindControl requires that controls have unique IDs."
This error occurs when I toggle the check box a couple times.
Below is my code:
This is the error message I'm getting:
"Multiple controls with the same ID 'contextMenu1' were found. FindControl requires that controls have unique IDs."
This error occurs when I toggle the check box a couple times.
Below is my code:
<span>Show All Locations:</span> <asp:CheckBox ID="LocationsTreeView_ChkBox" runat="server" AutoPostBack="true" OnCheckedChanged="LocationsTreeView_CheckedChanged" Checked="false" /> <telerik:RadTreeView ID="LocationsTreeView" runat="server" EnableDragAndDrop="true" MultipleSelect="true" EnableDragAndDropBetweenNodes="true" AllowNodeEditing="true" OnContextMenuItemClick="LocationsTreeView_ContextMenuItemClick" OnClientContextMenuItemClicking="onClientContextMenuItemClicking" OnClientContextMenuShowing="onClientContextMenuShowing" OnNodeEdit="LocationsTreeView_NodeEdit" OnNodeDrop="LocationsTreeView_NodeDrop" OnClientNodeDropping="onNodeDropping" OnClientNodeDragging="onNodeDragging" > </telerik:RadTreeView>protected void LocationsTreeView_CheckedChanged(object sender, EventArgs e) { CheckBox cb = (CheckBox)sender; if (cb.Checked == true) LocationTreeAll(); else if (cb.Checked == false) LocationTree(); }public void LocationTreeContextMenu() { // Define Context Menu 1 ## Enable Menu Item // Define Context Menu 2 ## Disable Menu Item RadTreeViewContextMenu contextMenu1 = new RadTreeViewContextMenu(); RadTreeViewContextMenu contextMenu2 = new RadTreeViewContextMenu(); contextMenu1.ID = "contextMenu1"; contextMenu2.ID = "contextMenu2"; // Build Menu's RadMenuItem menuItem1 = new RadMenuItem(); menuItem1.Value = "Rename"; menuItem1.Text = "Rename ..."; menuItem1.Enabled = true; menuItem1.ImageUrl="images/icons/edit_48.png"; contextMenu1.Items.Add(menuItem1); contextMenu2.Items.Add(menuItem1); RadMenuItem menuItem2 = new RadMenuItem(); menuItem2.IsSeparator = true; contextMenu1.Items.Add(menuItem2); contextMenu2.Items.Add(menuItem2); RadMenuItem menuItem3 = new RadMenuItem(); menuItem3.Value = "addLocation"; menuItem3.Text = "Add Location"; menuItem3.Enabled = true; menuItem3.ImageUrl = "images/icons/add_16.png"; contextMenu1.Items.Add(menuItem3); contextMenu2.Items.Add(menuItem3); RadMenuItem menuItem4 = new RadMenuItem(); menuItem4.Value = "enableLocation"; menuItem4.Text = "Enable Location"; menuItem4.Enabled = true; contextMenu1.Items.Add(menuItem4); RadMenuItem menuItem5 = new RadMenuItem(); menuItem5.Value = "disableLocation"; menuItem5.Text = "Disable Location"; menuItem5.Enabled = true; contextMenu2.Items.Add(menuItem5); RadMenuItem menuItem6 = new RadMenuItem(); menuItem6.Value = "editDetails"; menuItem6.Text = "Edit Details"; menuItem6.Enabled = true; menuItem6.PostBack = true; contextMenu1.Items.Add(menuItem6); contextMenu2.Items.Add(menuItem6); // Add The context menu to the tree LocationsTreeView.ContextMenus.Add(contextMenu1); LocationsTreeView.ContextMenus.Add(contextMenu2); // Check to see which node gets which context menu foreach (RadTreeNode node in LocationsTreeView.GetAllNodes()) { string check = ""; string getStatus = "SELECT Enabled FROM dbo.Locations WHERE ID='" + node.Value.ToString() + "'"; SqlCommand cmd = new SqlCommand(getStatus,connection); connection.Open(); check = cmd.ExecuteScalar().ToString(); connection.Close(); cmd.Dispose(); if (check == "True") { node.ContextMenuID = "contextMenu2"; } else if (check == "False") { node.ContextMenuID = "contextMenu1"; } } }