protected string GenerateHtmlInputControls()
{
HtmlGenericControl parent = new HtmlGenericControl("div");
parent.Attributes.Add("class", "ajax__fileupload");
Controls.Add(parent);
var inputFileStyle =
"opacity:0; -moz-opacity: 0.0; filter: alpha(opacity=0);";
HtmlInputFile inputFile = new HtmlInputFile();
if(!Enabled)
inputFile.Disabled = true;
inputFile.Attributes.Add("id", ClientID + "_Html5InputFile");
inputFile.Attributes.Add("multiple", "multiple");
inputFile.Attributes.Add("style", inputFileStyle);
HideElement(inputFile);
HtmlInputFile inputFileElement = new HtmlInputFile();
if(!Enabled)
inputFileElement.Disabled = true;
inputFileElement.Attributes.Add("id", ClientID + "_InputFileElement");
inputFileElement.Attributes.Add("name", "act-file-data");
inputFileElement.Attributes.Add("style", inputFileStyle);
HideElement(inputFileElement);
HtmlGenericControl dropZone = new HtmlGenericControl("div");
dropZone.Attributes.Add("class", "ajax__fileupload_dropzone");
dropZone.Attributes.Add("id", ClientID + "_Html5DropZone");
// IE 10 requested dropzone to be have actual size
dropZone.Attributes.Add("style", "width:100%; height:60px;");
HideElement(dropZone);
parent.Controls.Add(dropZone);
HtmlGenericControl fileStatusContainer = new HtmlGenericControl("div");
fileStatusContainer.Attributes.Add("id", ClientID + "_FileStatusContainer");
fileStatusContainer.Style[HtmlTextWriterStyle.Position] = "absolute";
fileStatusContainer.Style["right"] = "0";
fileStatusContainer.Style["top"] = "2px";
fileStatusContainer.Style["height"] = "20px";
fileStatusContainer.Style["line-height"] = "20px";
HideElement(fileStatusContainer);
var selectFileContainer = GenerateHtmlSelectFileContainer(inputFileElement, inputFile);
parent.Controls.Add(selectFileContainer);
parent.Controls.Add(GenerateHtmlTopFileStatus(fileStatusContainer));
var queueContainer = new HtmlGenericControl("div");
queueContainer.Attributes.Add("id", ClientID + "_QueueContainer");
queueContainer.Attributes.Add("class", "ajax__fileupload_queueContainer");
queueContainer.Style[HtmlTextWriterStyle.MarginTop] = "28px";
parent.Controls.Add(queueContainer);
HideElement(queueContainer);
var progressBar = new HtmlGenericControl("div");
progressBar.Attributes.Add("id", ClientID + "_ProgressBar");
progressBar.Attributes.Add("class", "ajax__fileupload_progressBar");
progressBar.Attributes.Add("style", "width: 100%; display: none; visibility: hidden; overflow:visible;white-space:nowrap; height:20px;");
var uploadButton = GenerateHtmlFooterContainer(progressBar);
parent.Controls.Add(uploadButton);
return parent.ClientID;
}