private void SetDDLLevelSelection(DropDownList ddl, string extHierarchyID) { if (amsResultHierarchyLevels != null && amsResultHierarchyLevels.Result.Count > 0) { HierarchyLevels hL = amsResultHierarchyLevels.Result.SingleOrDefault(p => p.ExtHierarchyID == extHierarchyID); int index = hL.ListLevelInHiearchy.IndexOf(hL.SelectedLevel); if (hL != null && hL.SelectedLevel > 0 && index != -1 && hL.ListLevelNames.Capacity >= index) { string savedLevelName = hL.ListLevelNames[index]; int indexOfSavedLevel = ddl.Items.IndexOf(new ListItem(savedLevelName)); if (indexOfSavedLevel != -1 && ddl.Items.Count >= indexOfSavedLevel) { ddl.SelectedIndex = indexOfSavedLevel; } } } }
private DataTable PrepareHierarchyLevelSelectionDT(bool noGroupingFlag) { DataTable dt = new DataTable(); string extHierarchyID = string.Empty; int levelInHierarchy = 0; string currentSelectedLevelName = string.Empty; int selectedIndexFromLevels = 0; DropDownList ddl = null; dt.Columns.Add("ExtHierarchyID"); dt.Columns.Add("LevelInHierarchy", typeof(Int16)); foreach (RepeaterItem ri in repGrouping.Items) { ddl = ri.FindControl("ddlLevels") as DropDownList; extHierarchyID = (ri.FindControl("lblHierarchyID") as Label).Text; if (noGroupingFlag) { dt.Rows.Add(extHierarchyID, null); ddl.SelectedIndex = 0; } else { currentSelectedLevelName = ddl.SelectedValue; //HierarchyLevels hl1 = ri.DataItem as HierarchyLevels; HierarchyLevels hl = m_ProductService.GetProductHierarchyLevel(extHierarchyID).Result; if (hl != null) { selectedIndexFromLevels = hl.ListLevelNames.IndexOf(currentSelectedLevelName); if (selectedIndexFromLevels >= 0) { levelInHierarchy = hl.ListLevelInHiearchy[selectedIndexFromLevels]; //The level selected in UI should not be what is already saved to prevent redundant calls if (levelInHierarchy != hl.SelectedLevel) { dt.Rows.Add(extHierarchyID, levelInHierarchy); } } } } } return(dt); }