Telerik is a leading vendor of ASP.NET AJAX, ASP.NET MVC, Silverlight, WinForms and WPF controls and components, as well as .NET Reporting, .NET ORM , .NET CMS, Code Analysis, Mocking, Team Productivity and Automated Testing Tools. Building on its expertise in interface development and Microsoft technologies, Telerik helps customers build applications with unparalleled richness, responsiveness and interactivity. Telerik products help thousands of companies to be more productive and deliver reliable applications under budget and on time.
Version Q1 2012 released 04/11/2012
select
  • Rate / Review
    • Give your Feedback:

      Rate this demo:


Upload /

select
   
  
  
   
SEND

  • This example demonstrates how to use RadUpload for Silverlight within ASP.NET Ajax web site in order to achieve rich web mail UI. Stand-alone examples are also available:

    Requirements:

    1. A Silverlight application (XAP) which contains RadUpload for Silverlight. We provide a ready for use xap file and its Visual Studio project (should you need to customize it).
    2. The HTTP handler which saves the files uploaded by RadUpload.

Source Code

C# VB.NET
Show code in new window Demo isolation steps
  • <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DefaultCS.aspx.cs" Inherits="Upload_SilverLight_DefaultCS" %>

    <%@ Register TagPrefix="qsf" Namespace="Telerik.QuickStart" %>
    <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
    <%@ Register TagPrefix="qsf" TagName="Header" Src="~/Common/Header.ascx" %>
    <%@ Register TagPrefix="qsf" TagName="HeadTag" Src="~/Common/HeadTag.ascx" %>
    <%@ Register TagPrefix="qsf" TagName="Footer" Src="~/Common/Footer.ascx" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <qsf:HeadTag ID="Headtag1" runat="server"></qsf:HeadTag>
        <link href="styles.css" rel="stylesheet" type="text/css" />
    </head>
    <body class="BODY">
        <form id="form1" runat="server">
        <qsf:Header ID="Header1" runat="server" NavigationLanguage="C#" ShowSkinChooser="false"></qsf:Header>
        <telerik:RadScriptManager ID="RadScriptManager1" runat="server" EnablePageMethods="true" />
        <telerik:RadScriptBlock runat="server">

            <script type="text/javascript">
                var $ = $telerik.$;
                var uploadInProgress;
                var uploadedFiles = new Array();

                // Fired when all the files are uploaded, set the JSON to be obtained on the server
                function onClientUploadFinished() {
                    updateHiddenField();
                }

                function updateHiddenField() {
                    var json = Sys.Serialization.JavaScriptSerializer.serialize(uploadedFiles);
                    $get('UploadedFilesJson').value = json;
                }

                // Fired when a file is uploaded
                function onClientFileUploaded(json) {
                    var uploadedFile = Sys.Serialization.JavaScriptSerializer.deserialize(json);
                    var downloadFile = $("<a class='download-file'></a>")
                    .attr("href", '<%= ResolveUrl(TargetFolder) %>' + uploadedFile.FileName)
                    .text(uploadedFile.FileName);

                    var deleteFile = $("<a class='delete-file'>Delete</a>")
                    .attr("href", "#")
                    .click(function(e) {
                        e.preventDefault();
                        
                        Array.remove(uploadedFiles, uploadedFile);
                        updateHiddenField();
                        
                        PageMethods.DeleteFile(uploadedFile.FileName);

                        $(this)
                            .parent()
                            .animate({ width: 0, opacity: 0 }, function() {
                                $(this).remove()
                            });
                    }
                    );

                    $("<span class='uploaded-file'></span>")
                    .append(downloadFile)
                    .append(deleteFile)
                    .appendTo($("div.uploaded-files"));

                    Array.add(uploadedFiles, uploadedFile);
                }

                function selectedIndexChanged(sender, args) {
                    var extension = args.get_item();
                    var silverlight = $get('SilverlightUpload');
                    silverlight.Content.MainPage.SetAllowedExtensions(extension.get_text());
                }
            
            </script>

        </telerik:RadScriptBlock>
        <telerik:RadAjaxLoadingPanel runat="server" ID="LoadingExamplePanel">
        </telerik:RadAjaxLoadingPanel>
        <telerik:RadAjaxPanel runat="server" ID="AjaxPanelMain" LoadingPanelID="LoadingExamplePanel">
            <input type="hidden" id="UploadedFilesJson" runat="server" />
            <asp:Panel runat="server" ID="Panel1" Visible="true">
                <div class="example-panel">
                    <div class="to-subject-panel">
                        <ul>
                            <li>
                                <label>
                                    To:</label>
                                <telerik:RadTextBox ID="ToTextBox" runat="server" Width="640px" Skin="Office2007"
                                    EnableViewState="false" />
                            </li>
                            <li>
                                <label>
                                    Subject:</label>
                                <telerik:RadTextBox ID="SubjectTextBox" runat="server" Width="640px" Skin="Office2007"
                                    EnableViewState="false" />
                            </li>
                        </ul>
                    </div>
                    <div class="upload-panel">
                        <div class="upload">
                            <object id="SilverlightUpload" data="data:application/x-silverlight," type="application/x-silverlight-2"
                                width="100%" height="120px">
                                <param name="source" value='<%= ResolveUrl("~/Upload/Examples/SilverLight/Upload.xap") %>' />
                                <param name="background" value="white" />
                                <param name="minRuntimeVersion" value="2.0.31005.0" />
                                <param name="autoUpgrade" value="true" />
                                <param name="windowless" value="true" />
                                <param name="InitParams" value='<%= InitParameters %>' />
                                <a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">
                                    <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight"
                                        style="border-style: none" />
                                </a>
                            </object>
                        </div>
                        <div class="files">
                            <label>
                                Allowed filetypes:</label>
                            <telerik:RadComboBox runat="server" ID="RadComboBox1" AutoPostBack="false" Width="250px"
                                OnClientSelectedIndexChanged="selectedIndexChanged" Skin="Office2007">
                                <Items>
                                    <telerik:RadComboBoxItem Text="Image Files(*.gif;*.jpg;*.jpeg;*.png)" Value="Image Files(*.gif;*.jpg;*.jpeg;*.png)" />
                                    <telerik:RadComboBoxItem Text="Zip Files(*.zip)" Value="Zip Files(*.zip)" />
                                </Items>
                            </telerik:RadComboBox>
                            <div class="uploaded-files">
                            </div>
                        </div>
                    </div>
                    <div class="editor-panel">
                        <telerik:RadEditor ID="MailBodyEditor" runat="server" Width="735px" Height="258px"
                            EnableResize="false" EditModes="Design" Skin="Office2007" EnableViewState="false">
                            <Tools>
                                <telerik:EditorToolGroup Tag="MainToolbar">
                                    <telerik:EditorTool Name="AjaxSpellCheck" />
                                    <telerik:EditorSeparator Visible="true" />
                                    <telerik:EditorTool Name="Undo" />
                                    <telerik:EditorTool Name="Redo" />
                                    <telerik:EditorSeparator Visible="true" />
                                    <telerik:EditorTool Name="Cut" />
                                    <telerik:EditorTool Name="Copy" />
                                    <telerik:EditorTool Name="Paste" ShortCut="CTRL+!" />
                                </telerik:EditorToolGroup>
                                <telerik:EditorToolGroup Tag="Formatting">
                                    <telerik:EditorTool Name="Bold" />
                                    <telerik:EditorTool Name="Italic" />
                                    <telerik:EditorTool Name="Underline" />
                                    <telerik:EditorSeparator Visible="true" />
                                    <telerik:EditorTool Name="ForeColor" />
                                    <telerik:EditorTool Name="BackColor" />
                                    <telerik:EditorSeparator Visible="true" />
                                    <telerik:EditorTool Name="FontName" />
                                    <telerik:EditorTool Name="RealFontSize" />
                                </telerik:EditorToolGroup>
                            </Tools>
                        </telerik:RadEditor>
                        <asp:LinkButton ID="SaveButton" Text="SEND" runat="server" CssClass="save-button" OnClick="SaveButton_Click" />
                    </div>
                </div>
            </asp:Panel>
            <asp:Panel runat="server" ID="Panel2" Visible="false">
                <div class="example-panel">
                    <div class="to-subject-panel">
                        <ul>
                            <li>
                                <label>
                                    To:</label>
                                <asp:Label runat="server" ID="ToLabel" CssClass="text recipient" />
                            </li>
                            <li>
                                <label>
                                    Subject:</label>
                                <asp:Label runat="server" ID="SubjectLabel" CssClass="text" />
                            </li>
                        </ul>
                    </div>
                    <div class="upload-panel">
                        <div class="attached-files">
                            <div>
                                <label>
                                    Attached files:</label>
                                <asp:Repeater runat="server" ID="AttachmentRepeater" EnableViewState="false">
                                    <ItemTemplate>
                                        <span class="attachment"><a href='<%# ResolveUrl(TargetFolder) + Eval("FileName") %>'>
                                            <%#Eval("FileName")%>
                                            (<%# Convert.ToInt32(Eval("FileSize")) / 1024 %>kb) </a></span>
                                    </ItemTemplate>
                                </asp:Repeater>
                            </div>
                        </div>
                    </div>
                    <div class="mail-body">
                        <div class="mail-body-mid">
                            <asp:Literal runat="server" ID="MailBodyLiteral"></asp:Literal>
                        </div>
                        <div class="mail-body-bot">
                        </div>
                    </div>
    <asp:LinkButton ID="BackButton" Text="BACK" runat="server" CssClass="back-button"
    OnClick="BackButton_Click" />

                </div>
            </asp:Panel>
        </telerik:RadAjaxPanel>
        <qsf:Footer ID="Footer1" runat="server"></qsf:Footer>
        </form>
    </body>
    </html>

Get more than expected!

Take your time to truly experience the power of RadControls for ASP.NET AJAX with a free 60-day trial backed up by Telerik’s unlimited dedicated support.

Download your RadControls for ASP.NET AJAX trial and jumpstart your development with the available Getting Started resources.

If you have any questions, do not hesitate to contact us at sales@telerik.com.

Copyright 2002-2012 © Telerik. All right reserved
Telerik Inc, 201 Jones Rd, Waltham, MA 02451