or
<%@
Control Language="C#" AutoEventWireup="true" CodeFile="Upload.ascx.cs"
Inherits="WebComponents.UserControls.CommonControls.Upload.Upload.Upload"
%><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><script type="text/javascript"> function ValidatePhoneNumber(sender, args) { if (document.getElementById('<%= txtPhonePartOne.ClientID %>').value.length < 1 || document.getElementById('<%= txtPhonePartTwo.ClientID %>').value.length < 1 || document.getElementById('<%= txtPhonePartThree.ClientID %>').value.length < 1) { args.IsValid = false; } } //auto move cursor through phone fields function checkLen(fieldToMeasure, fieldToJump) { var currentLength = document.getElementById(fieldToMeasure).value.length; if (currentLength == 3) { document.getElementById(fieldToJump).focus() } } //client side validation for phone number function checkPhone(sender, args) { if (document.getElementById('<%= txtPhonePartOne.ClientID %>').value.length < 1 || document.getElementById('<%= txtPhonePartTwo.ClientID %>').value.length < 1 || document.getElementById('<%= txtPhonePartThree.ClientID %>').value.length < 1) { args.IsValid = false; } } //validate valid file type function ValidateRadUpload1(source, arguments) { arguments.IsValid = getRadUpload('<%= radUpload.ClientID %>').validateExtensions(); } //update label for upload function updateUploadLabel(fieldToUpdate, textToDisplay) { var pageIsValid = Page_ClientValidate(); if (pageIsValid) { document.getElementById(fieldToUpdate).innerHTML = textToDisplay; } }</script><asp:Label ID="lblErrorMessage" runat="server"></asp:Label><asp:ValidationSummary ID="vsForm" runat="server" CssClass="errorsummary" /><fieldset class="radContainer"> <legend> <asp:Literal ID="litDocumentUploadHeader" runat="server" Text="<%$ Resources:litDocumentHeader %>"></asp:Literal></legend> <p> <asp:Literal ID="litAllowedFileTypes" runat="server" Text="" /></p> <div class="input"> <label for="ddlInquiryType"> <asp:Literal ID="litDocumentType" runat="server" Text="<%$ Resources:litDocumentType %>"></asp:Literal> </label> <asp:DropDownList ID="ddlDocumentType" CssClass="first" runat="server" AppendDataBoundItems="true"> </asp:DropDownList> <asp:RequiredFieldValidator ID="reqDocumentType" ErrorMessage="<%$ Resources:reqDocumentType %>" ControlToValidate="ddlDocumentType" Display="Dynamic" runat="server" Text="*" CssClass="errorindicator"></asp:RequiredFieldValidator> </div> <br class="end" /> <div class="file"> <asp:Literal ID="litUpload" runat="server" Text="<%$ Resources:litUpload %>" /><br /> <telerik:RadUpload ID="radUpload" runat="server" InputSize="45" Width="500px" Skin="Test" EnableEmbeddedSkins="false" /> <asp:CustomValidator runat="server" Display="none" CssClass="errorindicator" ID="cusFileType" ClientValidationFunction="ValidateRadUpload" OnServerValidate="radUploadCustomValidator_ServerValidate" ErrorMessage="<%$ Resources:cusFileType %>" /> </div> <div> <asp:Label ID="lblNoResults" runat="server" Visible="True" CssClass="transferMessage" /> <telerik:RadProgressManager ID="radProgressManager" runat="server" /> <telerik:RadProgressArea runat="server" ID="ProgressArea1" DisplayCancelButton="True" ProgressIndicators="TotalProgressBar,
TotalProgress, RequestSize, FilesCountBar, FilesCount,
SelectedFilesCount, CurrentFileName, TimeElapsed, TimeEstimated,
TransferSpeed" Skin="Default" EnableEmbeddedSkins="true"> <Localization Uploaded="Uploaded" /> </telerik:RadProgressArea> </div></fieldset><div class="input comment"> <asp:Literal ID="litComments" runat="server" Text="<%$ Resources:litComments %>"></asp:Literal> <asp:RegularExpressionValidator ID="regexComments" runat="server" CssClass="errorindicator" ControlToValidate="txtComments" Text="*" Display="Dynamic" EnableClientScript="false" ErrorMessage="<%$ Resources:regexComments %>" ValidationExpression="^.[\s\S]{1,10000}$"></asp:RegularExpressionValidator> <asp:TextBox ID="txtComments" runat="server" TextMode="MultiLine" MaxLength="10000" /></div><div class="end"></div><div id="divSubmit"> <asp:Button ID="btnSubmit" runat="server" Text="<%$ Resources:btnSubmit %>" OnClick="btnSubmit_Click" /></div>using InstalledWebComponents.Library.Email;using System;using System.Collections;using System.Collections.Generic;using System.Configuration;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using Telerik.Sitefinity.GenericContent.Model;using Telerik.Sitefinity.Lists.Model;using Telerik.Sitefinity.Modules.Lists;using Telerik.Sitefinity.Workflow;using Telerik.Web.UI;namespace WebComponents.UserControls.CommonControls.Upload.Upload{ public partial class Upload : System.Web.UI.UserControl { private const string LIST_NAME = "Upload Document Types"; Regex regEx = new Regex(@"^([\(]{1}[0-9]{3}[\)]{1}[\.| |\-]{0,1}|^[0-9]{3}[\.|\-| ]?)?[0-9]{3}(\.|\-| )?[0-9]{4}$"); private string _onCompletionRedirectUrl; private string ldc = string.Empty; [Personalizable(PersonalizationScope.Shared), WebBrowsable(), WebDisplayName("On completion redirect user to this page"), WebDescription("On completion redirect user to this page")] [System.ComponentModel.Description("On completion redirect user to this page.")] public string OnCompletionRedirectUrl { get { if (string.IsNullOrEmpty(_onCompletionRedirectUrl)) _onCompletionRedirectUrl = "~/thankyou"; return _onCompletionRedirectUrl; } set { _onCompletionRedirectUrl = value; } } protected void Page_Init(object sender, EventArgs e) { BindInquiryTypes(); } protected void Page_Load(object sender, EventArgs e) { txtPhonePartOne.Attributes.Add("onKeyUp", string.Format("checkLen('{0}','{1}')", txtPhonePartOne.ClientID, txtPhonePartTwo.ClientID)); txtPhonePartTwo.Attributes.Add("onKeyUp", string.Format("checkLen('{0}','{1}')", txtPhonePartTwo.ClientID, txtPhonePartThree.ClientID)); SetObjectsVisibility(); string domain = Request.Url.Host.ToUpperInvariant(); } protected void validatePhoneNumber_ServerValidate(object source, ServerValidateEventArgs args) { string phoneNumber = EmailForm.CombinePhoneNumberParts(txtPhonePartOne.Text, txtPhonePartTwo.Text, txtPhonePartThree.Text); if (phoneNumber.Length > 0) { args.IsValid = regEx.Match(phoneNumber).Success; } } private void BindInquiryTypes() { ddlDocumentType.Items.Clear(); List<Telerik.Sitefinity.Lists.Model.ListItem> list = EmailForm.GetList(LIST_NAME).ListItems.ToList(); List<string> itemList = new List<string>(); itemList.Add("Select Document Type"); for (int index = 0; index < list.Count; index++) { if (!itemList.Contains(list[index].Title)) { itemList.Add(list[index].Title); } } ddlDocumentType.DataSource = itemList; ddlDocumentType.DataBind(); } private void SetObjectsVisibility() { string strAllowedFileType = EmailForm.FindListItem(EmailForm.GetList("Upload Document Allowed File Types"), "allowed file types").Content.ToString(); string[] arrAllowedFileTypes = strAllowedFileType.Split(new char[] { ',' }); radUpload.ControlObjectsVisibility = ControlObjectsVisibility.None; radUpload.ControlObjectsVisibility |= ControlObjectsVisibility.AddButton; radUpload.ControlObjectsVisibility |= ControlObjectsVisibility.RemoveButtons; radUpload.MaxFileInputsCount = 5; radUpload.MaxFileSize = 524288000; //500MB radUpload.AllowedFileExtensions = arrAllowedFileTypes; radUpload.Localization.Add = GetLocalResourceObject("RadUploadAddButtonText").ToString(); litAllowedFileTypes.Text = strAllowedFileType; } protected void btnSubmit_Click(object sender, EventArgs e) { if (!Page.IsValid) return; if (txtPhonePartOne.Text.Length < 3 || txtPhonePartTwo.Text.Length < 3 || txtPhonePartThree.Text.Length < 4) { lblErrorMessage.Text = "Phone Number is not valid"; return; } SendEmail(); ShowResults(); if (lblErrorMessage.Text.Length == 0) Response.Redirect(OnCompletionRedirectUrl); } private void ShowResults() { //load results into session variable //todo create session handling class ArrayList arlUploadedFiles = new ArrayList(); ArrayList arlInvalidFiles = new ArrayList(); if (radUpload.UploadedFiles.Count > 0) { foreach (UploadedFile file in radUpload.UploadedFiles) { arlUploadedFiles.Add(file.FileName.ToString()); } Session["SuccessfullyUploadedFiles"] = arlUploadedFiles; } if (radUpload.InvalidFiles.Count > 0) { foreach (UploadedFile invalidfile in radUpload.InvalidFiles) { arlInvalidFiles.Add(invalidfile.FileName.ToString()); } Session["InvalidFilesRejectedForUpload"] = arlInvalidFiles; } } private bool SendEmail() { //Sends submitted form data and file(s) return true; } private string BuildEmailBody() { //Builds email body and returns string return "Email body content" } protected void radUploadCustomValidator_ServerValidate(object source, ServerValidateEventArgs eventArgs) { eventArgs.IsValid = (radUpload.InvalidFiles.Count == 0); } }}