/// <summary> /// Generates the uploaders, saves them to the hastable and returns ClientID of the first uploader /// which should be visible when "Add file" link is clicked. /// </summary> private void GenerateUploaders() { string availableUploaders = ""; string visibleUploaders = ""; // Maximum visible field at the begenning is the smaller number of those two int stillVisible = Math.Min(mMaxUploadFields, mDefaultUploadFields); for (int i = 0; i < mMaxUploadFields; i++) { // Create new panel and put it to page Panel pnlUploader = new Panel(); pnlUploaders.Controls.Add(pnlUploader); CMSFileUpload uploader = new CMSFileUpload(); pnlUploader.Controls.Add(uploader); uploadersList.Add(uploader); pnlUploader.Controls.Add(new LiteralControl(" ")); HyperLink lnkRemove = new HyperLink(); lnkRemove.Text = strRemove; lnkRemove.CssClass = "NewItemLink"; lnkRemove.NavigateUrl = "#"; lnkRemove.Attributes.Add("onclick", "removeFile('" + pnlUploader.ClientID + "', '" + uploader.ClientID + "'); return false;"); pnlUploader.Controls.Add(lnkRemove); // Set correct visibility if (stillVisible > 0) { pnlUploader.Attributes.Add("style", "display: block;"); visibleUploaders += ", '" + pnlUploader.ClientID + "'"; stillVisible--; } else { availableUploaders += ", '" + pnlUploader.ClientID + "'"; pnlUploader.Attributes.Add("style", "display: none;"); } } visibleUploaders = visibleUploaders.Trim(','); availableUploaders = availableUploaders.Trim(','); // Initialize JS variables ltlScript.Text += ScriptHelper.GetScript( "var addLinkElemPanel = document.getElementById('" + pnlAdd.ClientID + "');\n" + "var addLinkElem = document.getElementById('" + lnkAdd.ClientID + "'); \n\n" + "var strAddAnotherFile = '" + GetString("fileuploader.addanotherfile") + "'; \n" + "var strAttachFile = '" + GetString("fileuploader.attachfile") + "'; \n\n" + "var uploadersVisible = new Array(" + visibleUploaders + "); \n" + "var uploadersAvailable = new Array(" + availableUploaders + "); \n\n" + "reorderUploaders(); \n\n"); }
/// <summary> /// Generates the uploaders, saves them to the hastable and returns ClientID of the first uploader /// which should be visible when "Add file" link is clicked. /// </summary> private void GenerateUploaders() { string availableUploaders = ""; string visibleUploaders = ""; // Maximum visible field at the begenning is the smaller number of those two int stillVisible = Math.Min(mMaxUploadFields, mDefaultUploadFields); for (int i = 0; i < mMaxUploadFields; i++) { // Create new panel and put it to page Panel pnlUploader = new Panel(); pnlUploaders.Controls.Add(pnlUploader); CMSFileUpload uploader = new CMSFileUpload(); pnlUploader.Controls.Add(uploader); uploadersList.Add(uploader); pnlUploader.Controls.Add(new LiteralControl(" ")); HyperLink lnkRemove = new HyperLink(); lnkRemove.Text = strRemove; lnkRemove.CssClass = "NewItemLink"; lnkRemove.NavigateUrl = "#"; lnkRemove.Attributes.Add("onclick", "removeFile('" + pnlUploader.ClientID + "', '" + uploader.ClientID + "'); return false;"); pnlUploader.Controls.Add(lnkRemove); // Set correct visibility if (stillVisible > 0) { pnlUploader.Attributes.Add("style", "display: block;"); visibleUploaders += ", '" + pnlUploader.ClientID + "'"; stillVisible--; } else { availableUploaders += ", '" + pnlUploader.ClientID + "'"; pnlUploader.Attributes.Add("style", "display: none;"); } } visibleUploaders = visibleUploaders.Trim(','); availableUploaders = availableUploaders.Trim(','); // Initialize JS variables ltlScript.Text += ScriptHelper.GetScript( "var addLinkElemPanel = document.getElementById('" + pnlAdd.ClientID + "');\n" + "var addLinkElem = document.getElementById('" + lnkAdd.ClientID + "'); \n\n" + "var strAddAnotherFile = " + ScriptHelper.GetLocalizedString("fileuploader.addanotherfile") + "; \n" + "var strAttachFile = " + ScriptHelper.GetLocalizedString("fileuploader.attachfile") + "; \n\n" + "var uploadersVisible = new Array(" + visibleUploaders + "); \n" + "var uploadersAvailable = new Array(" + availableUploaders + "); \n\n" + "reorderUploaders(); \n\n"); }