/// <summary> /// Called by the ASP.NET page framework to notify server controls that use /// composition-based implementation to create any child controls they contain /// in preparation for posting back or rendering. /// </summary> protected override void CreateChildControls() { base.CreateChildControls(); _controller = GetController(); // Create the container var outerContainer = new Panel(); outerContainer.CssClass = "upUploadBox"; Controls.Add(outerContainer); // Create the file uploads for (int i = 0; i < MaxFileUploads; i++) { var fuContainer = new Panel(); fuContainer.CssClass = "upFileInputs"; outerContainer.Controls.Add(fuContainer); var fu = new FileUpload(); fu.CssClass = "upFile"; fuContainer.Controls.Add(fu); var btnRemove = new ImageButton(); fuContainer.Controls.Add(btnRemove); btnRemove.AlternateText = "Remove upload"; btnRemove.ImageUrl = _controller.ImagePath + "removebutton.gif"; btnRemove.OnClientClick = "up_RemoveUpload(this); return false;"; if (i >= InitialFileUploads) { fuContainer.Style.Add("display", "none"); } } // Create the buttons var btnGo = new ImageButton(); outerContainer.Controls.Add(btnGo); btnGo.AlternateText = "Upload now"; btnGo.ImageUrl = _controller.ImagePath + "uploadbutton.gif"; btnGo.Visible = ShowUploadButton; var btnAdd = new ImageButton(); outerContainer.Controls.Add(btnAdd); btnAdd.AlternateText = "Add a new upload"; btnAdd.ImageUrl = _controller.ImagePath + "addbutton.gif"; btnAdd.OnClientClick = "up_AddUpload('" + ClientID + "'); return false;"; btnAdd.Visible = ShowAddButton; }
/// <summary> /// Gets the upload controller. /// </summary> /// <returns>The upload controller.</returns> private DJUploadController GetController() { DJUploadController res = null; foreach (object o in Page.Form.Controls) { res = o as DJUploadController; if (res != null) { break; } } if (res == null) { throw new Exception( "An instance of the DJUploadController control must be placed at the beginning of the page before other controls."); } return(res); }