protected void RegionListView_ItemCommand(object sender, ListViewCommandEventArgs e) { ListViewItem dataItem = e.Item as ListViewItem; var controller = new NorthwindManager(); try { string regionDescription = String.Empty; Region region = null; switch (e.CommandName) { case "Cancel": RegionListView.EditIndex = -1; RegionListView.InsertItemPosition = InsertItemPosition.FirstItem; break; case "Delete": break; case "Select": break; case "Edit": RegionListView.EditIndex = dataItem.DataItemIndex; RegionListView.InsertItemPosition = InsertItemPosition.None; break; case "Insert": #region Insert Region and Territories regionDescription = (dataItem.FindControl("RegionDescription") as TextBox).Text.Trim(); string territoryDescriptions = (dataItem.FindControl("TerritoryDescriptions") as TextBox).Text; region = new Region() { RegionDescription = regionDescription, Territories = new List<Territory>() }; var territories = territoryDescriptions.Split(','); foreach (var territory in territories) { region.Territories.Add(new Territory() { TerritoryDescription = territory.Trim() }); } int regionId = controller.Add(region); MessageLabel.Text = "New region added (id: " + regionId + ")."; #endregion RegionListView.EditIndex = -1; break; case "Update": region = new Region() { RegionID = int.Parse((dataItem.FindControl("RegionID") as HiddenField).Value), RegionDescription = (dataItem.FindControl("RegionDescription") as TextBox).Text.Trim() }; Repeater territoryRepeater = dataItem.FindControl("TerritoryRepeater") as Repeater; var territoryList = new List<Territory>(); foreach (RepeaterItem item in territoryRepeater.Items) { territoryList.Add(new Territory() { TerritoryID = (item.FindControl("TerritoryID") as HiddenField).Value, TerritoryDescription = (item.FindControl("TerritoryDescription") as TextBox).Text.Trim(), RegionID = region.RegionID, Region = region }); } controller.Update(region, territoryList); MessageLabel.Text = "Region updated."; RegionListView.EditIndex = -1; RegionListView.InsertItemPosition = InsertItemPosition.FirstItem; break; default: break; } } catch (DbEntityValidationException ex) { MessageLabel.Text = "The following validation errors occured:<blockquote>"; foreach (var validationErrors in ex.EntityValidationErrors) { foreach (var validationError in validationErrors.ValidationErrors) { MessageLabel.Text += string.Format("<div>Property: {0} Error: {1}</div>", validationError.PropertyName, validationError.ErrorMessage); } } MessageLabel.Text += "</blockquote>"; } catch (Exception ex) { MessageLabel.Text = ex.InnermostMessage(); } PopulateRegions(); e.Handled = true; }
private void PopulateRegions() { try { var controller = new NorthwindManager(); var data = controller.GetRegions(); RegionListView.DataSource = data; RegionListView.DataBind(); } catch (Exception ex) { MessageLabel.Text = ex.Message; } }