I am having a problem with the TreeList. I am able to populate the list with parent and children elements. I can update and delete just fine. I can also Insert a new child element just fine. However when I try to insert a root level element with debugging enabled I have not been able to get the InsertCommand to fire. I am also using a user control for the editor. Here is my code as it is.
.aspx Page:
Code Behind:
.aspx Page:
<div id="DropUnderWrapper"> <asp:CheckBox ID="IsUnder" runat="server" Text=" Drop Under Parent" /></div><telerik:RadTreeList ID="MenuManager" runat="server"> <Columns> <telerik:TreeListBoundColumn DataField="MenuText" HeaderText="Menu Name" UniqueName="Name" /> <telerik:TreeListHyperLinkColumn DataNavigateUrlFields="SitePageID" DataNavigateUrlFormatString="/admin/pageManager/?CID={0}" DataTextField="PageTitle" HeaderText="Url Title" UniqueName="PageTitle" /> <telerik:TreeListBoundColumn DataField="MenuUrl" HeaderText="Url" UniqueName="MenuUrl" /> <telerik:TreeListBoundColumn DataField="MenuTarget" HeaderText="Target" UniqueName="MenuTarget" HeaderStyle-Width="60px" /> <telerik:TreeListBoundColumn DataField="IsEnabled" HeaderText="Status" UniqueName="MenuItemEnabled" HeaderStyle-Width="60px" /> <telerik:TreeListEditCommandColumn ButtonType="ImageButton" HeaderStyle-Width="60px" AddRecordText="Add Menu Item" Reorderable="false" /> <telerik:TreeListButtonColumn ButtonType="ImageButton" ButtonCssClass="deleteConfirm" CommandName="Delete" HeaderStyle-Width="30px" /> </Columns> <EditFormSettings UserControlPath="~/includes/userControls/MenuForm.ascx" EditFormType="WebUserControl"> </EditFormSettings> <ClientSettings AllowItemsDragDrop="true"> <Selecting AllowItemSelection="True" /> </ClientSettings></telerik:RadTreeList>Code Behind:
private string[] DataKey = { "MenuID" };private string[] ParentKey = { "ParentID" };private List<SiteMenu> MenuList = new List<SiteMenu>();protected override void OnInit(EventArgs e){ base.OnInit(e); MenuManager.Skin = "Default"; MenuManager.AllowPaging = false; MenuManager.AutoGenerateColumns = false; MenuManager.GridLines = TreeListGridLines.Both; MenuManager.ShowTreeLines = false; MenuManager.NeedDataSource += MenuManager_NeedDataSource; MenuManager.InsertCommand += MenuManager_InsertCommand; MenuManager.UpdateCommand += MenuManager_UpdateCommand; MenuManager.DeleteCommand += MenuManager_DeleteCommand; MenuManager.ItemDataBound += MenuManager_ItemDataBound; MenuManager.ItemCommand += MenuManager_ItemCommand; MenuManager.ClientSettings.AllowItemsDragDrop = true; MenuManager.ClientSettings.Selecting.AllowItemSelection = true; MenuManager.AllowMultiItemSelection = true; MenuManager.DataKeyNames = DataKey; MenuManager.ParentDataKeyNames = ParentKey; MenuManager.ItemDrop += MenuManager_RowDrop; MenuList = new SiteMenu().SelectAllPublicMenuItemsBySiteIDNotDeleted(ThisSiteID);}protected override void OnLoad(EventArgs e){ base.OnLoad(e); if (!IsPostBack) { MenuManager.ExpandToLevel(1); }}protected void MenuManager_NeedDataSource(object sender, TreeListNeedDataSourceEventArgs e){ MenuManager.DataSource = MenuList;}protected void MenuManager_ItemCommand(object sender, TreeListCommandEventArgs e){ if (e.CommandName == RadTreeList.InitInsertCommandName) { MenuManager.ClientSettings.Reordering.AllowColumnsReorder = false; } if (e.CommandName == RadTreeList.CancelCommandName) { MenuManager.ClientSettings.Reordering.AllowColumnsReorder = true; }}protected void MenuManager_ItemDataBound(object sender, TreeListItemDataBoundEventArgs e){ //irrelevant}protected void MenuManager_InsertCommand(object sender, TreeListCommandEventArgs e){ TreeListEditFormItem item = e.Item as TreeListEditFormItem; UserControl MenuForm = (UserControl)e.Item.FindControl(TreeListEditFormItem.EditFormUserControlID); int parentID = (int)item.ParentItem.GetDataKeyValue("MenuID"); RadComboBox menuType = (RadComboBox)MenuForm.FindControl("MenuSelectList"); RadTextBox menuText = (RadTextBox)MenuForm.FindControl("MenuText"); switch (menuType.SelectedItem.Text) { case "Editable Content": RadTextBox pageTitle = (RadTextBox)MenuForm.FindControl("PageTitle"); CheckBox defaultHomepage = (CheckBox)MenuForm.FindControl("DefaultHomepage"); if (new SiteMenu().InsertNewMenuItem(parentID, menuText.Text, pageTitle.Text, defaultHomepage.Checked)) { Response.Redirect("/admin/menuManager/"); } break; case "Document Link": UploadedFile uploadedFile = null; RadUpload docUpload = (RadUpload)MenuForm.FindControl("DocumentLink"); if (docUpload.UploadedFiles.Count > 0) { uploadedFile = docUpload.UploadedFiles[0]; } if (new SiteMenu().InsertNewDocumentLink(parentID, menuText.Text, uploadedFile.GetName())) { Response.Redirect("/admin/menuManager/"); } break; case "External / Custom Link": RadTextBox linkUrl = (RadTextBox)MenuForm.FindControl("LinkUrl"); RadComboBox target = (RadComboBox)MenuForm.FindControl("LinkTarget"); if (new SiteMenu().InsertExternalLink(parentID, menuText.Text, linkUrl.Text, target.Text)) { Response.Redirect("/admin/menuManager/"); } break; case "Chamber Modules": RadComboBox moduleType = (RadComboBox)MenuForm.FindControl("ModulePageType"); if (new SiteMenu().InsertNewModuleMenuItem(parentID, menuText.Text, moduleType.SelectedValue)) { Response.Redirect("/admin/menuManager/"); } break; }}protected void MenuManager_UpdateCommand(object sender, TreeListCommandEventArgs e){ //irrelevant}protected void MenuManager_DeleteCommand(object sender, TreeListCommandEventArgs e){ //irrelevant}protected void MenuManager_RowDrop(object sender, TreeListItemDragDropEventArgs e){ int key = (int)e.DraggedItems[0].GetDataKeyValue("MenuID"); int destinationId = 0; int sortOrder = 0; if (IsUnder.Checked) { destinationId = (int)e.DestinationDataItem.GetDataKeyValue("MenuID"); sortOrder = 1; } else { destinationId = (int)e.DestinationDataItem.GetParentDataKeyValue("ParentID"); sortOrder = new SiteMenu().SelectThisMenuItem((int)e.DestinationDataItem.GetDataKeyValue("MenuID"), ThisSiteID).SortOrder + 1; } if (destinationId == 0) { if (key != destinationId) { MenuList.FirstOrDefault(i => i.MenuID == key).ParentID = destinationId; MenuList.FirstOrDefault(i => i.MenuID == key).SortOrder = sortOrder; foreach (SiteMenu menuItem in MenuList.Where(i => i.ParentID == destinationId)) { if (menuItem.SortOrder >= sortOrder && menuItem.MenuID != key) { menuItem.SortOrder += 1; } } if (new SiteMenu().UpdateMenuListByParentID(destinationId, MenuList.Where(i => i.ParentID == destinationId).ToList())) { Response.Redirect("/admin/menuManager/"); } } } else { if (key != destinationId && key != MenuList.FirstOrDefault(i => i.MenuID == destinationId).ParentID) { MenuList.FirstOrDefault(i => i.MenuID == key).ParentID = destinationId; MenuList.FirstOrDefault(i => i.MenuID == key).SortOrder = sortOrder; foreach (SiteMenu menuItem in MenuList.Where(i => i.ParentID == destinationId)) { if (menuItem.SortOrder >= sortOrder && menuItem.MenuID != key) { menuItem.SortOrder += 1; } } if (new SiteMenu().UpdateMenuListByParentID(destinationId, MenuList.Where(i => i.ParentID == destinationId).ToList())) { Response.Redirect("/admin/menuManager/"); } } }}