protected void ButtonAddEnvironment_Click(object sender, EventArgs e) { WebUserControlEnvironments en = (WebUserControlEnvironments)LoadControl("~/WebUserControlEnvironments.ascx"); en.ID = PlaceHolderEnvironments.Controls.Count.ToString() + "_Environment"; PlaceHolderEnvironments.Controls.Add(en); List <WebUserControlEnvironmentsData> environData = EnvironmentsData; // Get it out of the viewstate WebUserControlEnvironmentsData enData = new WebUserControlEnvironmentsData(); enData = en.Data; environData.Add(enData); EnvironmentsData = environData; }
public void Environment_UserControlButtonRemoveClicked(object sender, EventArgs e) { // TO DO cast.. WebUserControlEnvironments toDel = (WebUserControlEnvironments)sender; if (toDel != null) { // Find the index of the control int indexToDel = PlaceHolderEnvironments.Controls.IndexOf(toDel); if (indexToDel >= 0) { List <WebUserControlEnvironmentsData> enData = EnvironmentsData; // Get it out of the viewstate enData.RemoveAt(indexToDel); EnvironmentsData = enData; LoadEnvironmentsControls(); LoadEnvironmentsEvents(); } } }
// Push the environments in the panelHolder again void LoadEnvironmentsControls() { List <WebUserControlEnvironmentsData> enData = EnvironmentsData; // Get it out of the viewstate if (enData != null) { PlaceHolderEnvironments.Controls.Clear(); int countID = 0; foreach (WebUserControlEnvironmentsData en in enData) { WebUserControlEnvironments environment = (WebUserControlEnvironments)LoadControl("~/WebUserControlEnvironments.ascx"); environment.LoadData(en); environment.ID = countID.ToString() + "_Environment"; ++countID; PlaceHolderEnvironments.Controls.Add(environment); } } EnvironmentsData = enData; }
public void Environment_UserControlFieldChanged(object sender, EventArgs e) { WebUserControlEnvironments en = (WebUserControlEnvironments)sender; if (en != null) { // Find the control. int indexOfControl = PlaceHolderEnvironments.Controls.IndexOf(en); if (indexOfControl >= 0) { List <WebUserControlEnvironmentsData> enData = EnvironmentsData; // Get it out of the viewstate if (enData.Count <= indexOfControl) { throw new ExecutionEngineException("Ooopps"); } enData[indexOfControl] = ((EnvironmentDataEventArgs)e).Data; EnvironmentsData = enData; } } }