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"
;
}
}
}