Hello everyone,
Title basically explains the problem. I have some code that I tried searching for online, but it doesn't do what I want it to.
See screenshot to see the duplicate data I'm trying to hide (i.e. hide the second row -- id: 34 -- where the business names are both "Tractor Supply Warehouse"
Here's the code I have now, though I've tried a few different approaches with no success. What happens in this one is that the value of the duplicateIndexList never changes...so everything after the duplicate Tractor Supply Warehouse row (id: 34) gets hidden, which I don't want!
Thanks!
private void MPLListRowCreation() { MPLList_GridView.Rows.Clear(); this.MPLList_GridView.BeginUpdate(); List<int> duplicateIndexList = new List<int>(); foreach (BPPriceMstr myMpl in masterPriceLists) { int[] dupl; GridViewDataRowInfo rowInfo = new GridViewDataRowInfo(this.MPLList_GridView.MasterView); int count = 0; rowInfo.Cells[0].Value = Convert.ToInt32(myMpl.Id); rowInfo.Cells[1].Value = myMpl.Business.CardName; rowInfo.Cells[2].Value = myMpl.StartDate.ToString("MM/dd/yyyy"); rowInfo.Cells[3].Value = myMpl.EndDate.ToString("MM/dd/yyyy"); rowInfo.Cells[4].Value = myMpl.CreatedBy; rowInfo.Cells[5].Value = myMpl.CreatedOn.ToString("MM/dd/yyyy"); rowInfo.Cells[6].Value = myMpl.ModifiedBy; if (myMpl.ModifiedOn.ToString("MM/dd/yyyy") != "01/01/0001") { rowInfo.Cells[7].Value = myMpl.ModifiedOn.ToString("MM/dd/yyyy"); } rowInfo.Cells[8].Value = myMpl.TermsPackage.PackageName; //set our search paramater (the row/cardname we're currently on) //iterate over all of the MPL objects and see if there is more than one match... string searchedStr = myMpl.Business.CardName; for (int i=0; i<masterPriceLists.Count; i++) { if (masterPriceLists[i].Business.CardName.ToUpper().Equals(searchedStr.ToUpper())) { count++; if (count > 1) { //if it finds more than one MPL, add the duplicate indices to an array duplicateIndexList.Add(myMpl.Id); } } } //if we have duplicates... if (duplicateIndexList.Count != 0) { dupl = duplicateIndexList.ToArray(); int firstEntry = dupl[0]; //hide all indices greater than the first entry... i.e. hide all indexes greater than the first one in the array foreach (var item in dupl) { if (firstEntry.ToString().Equals(item.ToString())) { rowInfo.IsVisible = true; //here we also probably want to show that there are multiple start/end dates for that MPL //rowInfo.Cells[2].Value = "Multiple"; //rowInfo.Cells[3].Value = "Multiple"; } else { rowInfo.IsVisible = false; } } } MPLList_GridView.Rows.Add(rowInfo); } this.MPLList_GridView.EndUpdate(); }