Follow up to other post
Turns out that the AsyncFileUpload Drag and Drop feature does not work in the first browser the page opens in but it does work in each subsequent browser. It doesn't matter whether Firefox, Internet Explorer, or Chrome is opened first, the control does not work as expected, however when you copy and past the url to the webform in the other two browsers the AsyncFileUpload Control works as expected.
See attached images which show that all three browsers are running the exact same page!!
It doesn't matter which browser you choose to run the application in first; IE10, Chrome, or Firefox the AsyncFileUpload Control Drag and Drop feature does not work. Another odd behavior is that the file select control does not show any mapped network drives to choose files from. You can choose files from the Network neighborhood but the mapped drives do not show-up.
The second and third browsers (doesn't matter which you choose, IE, Chrome, or Firefox) the control works as expected. I'm using the ASP.NET development server rather than IIS. This is on the .NET 4.0 framework. Again, here are the relevant webconfig, markup, and code-behind files.
Any help is much appreciated. Mark-up of aspx page.
WEB.CONFIG
| Drag and drop wont' work on one of two web applications using same page |
Turns out that the AsyncFileUpload Drag and Drop feature does not work in the first browser the page opens in but it does work in each subsequent browser. It doesn't matter whether Firefox, Internet Explorer, or Chrome is opened first, the control does not work as expected, however when you copy and past the url to the webform in the other two browsers the AsyncFileUpload Control works as expected.
See attached images which show that all three browsers are running the exact same page!!
It doesn't matter which browser you choose to run the application in first; IE10, Chrome, or Firefox the AsyncFileUpload Control Drag and Drop feature does not work. Another odd behavior is that the file select control does not show any mapped network drives to choose files from. You can choose files from the Network neighborhood but the mapped drives do not show-up.
The second and third browsers (doesn't matter which you choose, IE, Chrome, or Firefox) the control works as expected. I'm using the ASP.NET development server rather than IIS. This is on the .NET 4.0 framework. Again, here are the relevant webconfig, markup, and code-behind files.
Any help is much appreciated. Mark-up of aspx page.
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="RadUpload.aspx.vb" Inherits="AgencyHome.UI.RadUpload" %><%@ Register assembly="Telerik.Web.UI" namespace="Telerik.Web.UI" tagprefix="telerik" %><!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 runat="server"> <title></title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js" type="text/javascript"></script> <link href="/App_Themes/Upload/AsyncUpload.Metro.css" rel="Stylesheet" type="text/css" /> </head><body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <table style="font-family: Arial, Helvetica, sans-serif;" cellpadding="10"> <tr> <td> <telerik:RadAsyncUpload ID="RadAsyncUpload1" runat="server" AllowedFileExtensions="jpg,png,pdf,xls,xlsx,doc,docx" DropZones="#DropZone1,#DropZone2" > <FileFilters> <telerik:FileFilter Description="Documents" Extensions="pdf,xls,xlsx,doc,docx,jpg,png" /> </FileFilters> </telerik:RadAsyncUpload> </td> <td> <div id="DropZone1"> <p>Send to ASUREA</p> <p>Drop Applications Here</p> </div> </td> <td> <asp:Panel ID="DropZone2" runat="server"> <p>Using Panel</p> <p>Drop Files Here</p> </asp:Panel> </td> </tr> <tr> <td> <asp:Button ID="uploadButton" runat="server" Text="Upload" /> </td> </tr> </table> </div> </form> <script type="text/javascript"> //<![CDATA[ var $ = $telerik.$; function pageLoad() { if (!Telerik.Web.UI.RadAsyncUpload.Modules.FileApi.isAvailable()) { $(".qsf-demo-canvas").html("<strong>Your browser does not support Drag and Drop. Please take a look at the info box for additional information.</strong>"); } else { $(document).bind({ "drop": function (e) { e.stopPropagation(); e.preventDefault(); } }); var dropZone1 = $(document).find("#DropZone1"); dropZone1.bind({ "dragenter": function (e) { dragEnterHandler(e, dropZone1); } }) .bind({ "dragleave": function (e) { dragLeaveHandler(e, dropZone1); } }) .bind({ "drop": function (e) { dropHandler(e, dropZone1); } }); var dropZone2 = $(document).find("#DropZone2"); dropZone2.bind({ "dragenter": function (e) { dragEnterHandler(e, dropZone2); } }) .bind({ "dragleave": function (e) { dragLeaveHandler(e, dropZone2); } }) .bind({ "drop": function (e) { dropHandler(e, dropZone2); } }); } } function dropHandler(e, dropZone) { dropZone[0].style.backgroundColor = "#357A2B"; } function dragEnterHandler(e, dropZone) { var dt = e.originalEvent.dataTransfer; var isFile = (dt.types !== null && (dt.types.indexOf ? dt.types.indexOf('Files') != -1 : dt.types.contains('application/x-moz-file'))); if (isFile || $telerik.isSafari5 || $telerik.isIE10Mode || $telerik.isOpera) dropZone[0].style.backgroundColor = "#000000"; } function dragLeaveHandler(e, dropZone) { if (!$telerik.isMouseOverElement(dropZone[0], e.originalEvent)) dropZone[0].style.backgroundColor = "#357A2B"; } //]]> </script></body></html>#Region "Imports statements"Option Strict OnImports SystemImports System.DataImports System.CollectionsImports System.Collections.GenericImports System.ComponentModelImports System.Web.UIImports System.Web.UI.WebControlsImports BaseClassesImports BaseClasses.UtilsImports BaseClasses.Utils.StringUtilsImports BaseClasses.DataImports BaseClasses.Data.SqlProviderImports BaseClasses.Data.OrderByItem.OrderDirImports BaseClasses.Data.BaseFilterImports BaseClasses.Data.BaseFilter.ComparisonOperatorImports BaseClasses.Web.UI.WebControlsImports AgencyHome.BusinessImports AgencyHome.DataImports TelerikImports Telerik.Web.UI#End RegionNamespace AgencyHome.UI Public Class RadUpload Inherits System.Web.UI.Page ' Public WithEvents RadAsyncUpload1 As Telerik.Web.UI.RadAsyncUpload ' Public WithEvents uploadButton As System.Web.UI.WebControls.Button Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub Protected Sub uploadButton_Click(sender As Object, e As EventArgs) Handles uploadButton.Click 'If RadAsyncUpload1.UploadedFiles.Count > 0 Then 'System.Threading.Thread.Sleep(3000) 'End If End Sub Protected Sub RadAsyncUpload1_FileUploaded(sender As Object, e As Telerik.Web.UI.FileUploadedEventArgs) Handles RadAsyncUpload1.FileUploaded MsgBox("File Uploaded and named " + e.File.FileName + " Also known as " + e.File.GetName() + " And is this long " + e.File.ContentLength.ToString) End Sub Protected Sub RadAsyncUpload1_PreRender(sender As Object, e As EventArgs) Handles RadAsyncUpload1.PreRender Me.RadAsyncUpload1.AllowedFileExtensions = "jpg,png,pdf,xls,xlsx,doc,docx,tif,tiff,xps".Split(CChar(",")) Me.RadAsyncUpload1.MaxFileSize = 20971520 Me.RadAsyncUpload1.InputSize = 50 Me.RadAsyncUpload1.EnableEmbeddedSkins = False Me.RadAsyncUpload1.Skin = "" Me.RadAsyncUpload1.HideFileInput = True Me.RadAsyncUpload1.MultipleFileSelection = AsyncUpload.MultipleFileSelection.Automatic Me.RadAsyncUpload1.TargetFolder = "~/Documents/Permanent" Me.RadAsyncUpload1.TemporaryFolder = "~/Documents/Temp" End Sub End ClassEnd NamespaceWEB.CONFIG
<?xml version="1.0"?><!-- EDITING THIS FILE You should edit the copy of this Web.config file in the [application name] directory.--><configuration> <configSections> <section name="DataAccessLayerWhereClause" type="BaseClasses" allowLocation="true" allowDefinition="Everywhere" /> </configSections> <connectionStrings> <add name="DatabaseAgentCenter" connectionString="Data Source=IWI01AS14;Database=AgentCenter;Trusted_Connection=yes;User Id=INSWHL\AgencyWorksDW;Password=p@ssw0rd" providerName="System.Data.SqlClient" /> <add name="DatabaseASUREALeads" connectionString="Data Source=CORELLIA;Database=ASUREALeads;Trusted_Connection=yes;User Id=INSWHL\mhansen;Password=winter9529" providerName="System.Data.SqlClient" /> </connectionStrings> <system.net> <mailSettings> <smtp from="mhansen@asurea.com"> <network host="ASUREAEX01" port="25" userName="mhansen" password="winter9529" defaultCredentials="false" /> </smtp> </mailSettings> </system.net> <appSettings> <!-- EVENT LOGGING Set LogEvents value="false" to disable all logging to the system event log. DATABASE COMMAND LOGGING Set LogDatabaseCommands value="true" to log all database SQL commands to the system the event log. Only works if LogEvents = "true". DATABASE ERROR LOGGING Set LogDatabaseExceptions value="all" to log all database exceptions to the system the event log. Set to "default" to only log exceptions that are unlikely to be caused by normal user interaction. Only works if LogEvents = "true" Set LogCommitExceptions value="all" to log all database transaction commit exceptions to the system the event log. Set to "default" to only log exceptions that are unlikely to be caused by normal user interaction. Only works if LogEvents = "true". TRACE LOGGING OUTPUT To get detailed page-level tracing, set the following to "true": TraceDatabaseCommands, TraceDataAccessMethods, TraceTransactionCache Also set trace enabled="true" and pageOutput="true" in the APPLICATION-LEVEL TRACE LOGGING section below. --> <!-- VIEWSTATE LOCATION The ViewStateLocation specifies where the view state for a page should be stored. 1. Page (default): Stored it in the page. Increases page size. Always works, but slower to encrypt, decrypt and send. 2. Session: Store it in the session on the server. Results in better performance, but may not always work because session data may be timed out, or flushed to make room for more. 3. Cache: Stored in the cache. Similar to Session, but has more timeout options. 4. File: Stored in a temporary file. Will always work, but slower. 5. Database: Stored in the database. Will always work, but slower. See online help for more information. --> <add key="LogEvents" value="false" /> <add key="SPHost" value="http://spdev2010:3333/AppProc/" /> <add key="NewBusList" value="Submission Documents" /> <add key="SPNewBusListEmail" value="newbizsp@ASUREASPCORE01.inswhl.com" /> <add key="LogDatabaseCommands" value="false" /> <add key="LogDatabaseExceptions" value="default" /> <add key="LogCommitExceptions" value="default" /> <add key="TraceDatabaseCommands" value="false" /> <add key="TraceDataAccessMethods" value="false" /> <add key="TraceTransactionCache" value="false" /> <add key="WebServer" value="http://localhost" /> <add key="ApplicationName" value="AgencyHome" /> <add key="FCKeditor:BasePath" value="~/FCKeditor/" /> <add key="AuthenticationType" value="None" /> <add key="RoleManagement" value="None" /> <add key="CookieEncryptionKey" value="{DE98517F-CC5F-4E78-BD61-A477E237B740}" /> <add key="URLEncryptionKey" value="{DE98517F-CC5F-4E78-BD61-A477E237B740}" /> <add key="ChartImageHandler" value="Storage=file;Timeout=20;Url=../Temp/;" /> <add key="GoogleSignature" value="" /> <add key="SecurityDisabled" value="False" /> <add key="GoogleKey" value="" /> <add key="GoogleClientID" value="" /> <add key="DefaultDistanceUnit" value="miles" /> <add key="DefaultLatitude" value="37.0902400" /> <add key="DefaultLongitude" value="-95.7128910" /> <add key="MobileUserAgents" value="android|iphone|ipod|iemobile|windows ce|windows mobile|windows phone os|blackberry|palm|skyfire|symbian|symbos" /> <add key="aspnet:MaxHttpCollectionKeys" value="2000" /> <add key="aspnet:MaxJsonDeserializerMembers" value="2000" /> <add key="ViewStateLocation" value="Session" /> <add key="MobileDefaultPageUrl" value="" /> <add key="DefaultPageUrl" value="SUBMITBUS/Show-SUBMITBUS-Table.aspx" /> </appSettings> <system.web> <compilation debug="true" targetFramework="4.0" optimizeCompilations="true" tempDirectory="A:\ASP_NET_TempFiles\"> <assemblies> <add assembly="System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <!-- <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> --> <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> </assemblies> <buildProviders> <remove extension=".lic" /> <add extension=".lic" type="System.Web.Compilation.ForceCopyBuildProvider" /> </buildProviders> </compilation> <roleManager enabled="false" cacheRolesInCookie="false" defaultProvider="AspNetSqlRoleProvider" /> <siteMap defaultProvider="MenuElementsProvider"> <providers> <add siteMapFile="~/Menu Panels/Menu.sitemap" securityTrimmingEnabled="true" name="MenuElementsProvider" type="AgencyHome.UI.MenuXmlSiteMapProvider" /> <add siteMapFile="~/Menu Panels/MenuMobile.sitemap" securityTrimmingEnabled="true" name="MenuMobileElementsProvider" type="AgencyHome.UI.MenuXmlSiteMapProvider" /> </providers> </siteMap> <httpHandlers><!-- <add path="ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" validate="false" /> --> <add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI, Culture=neutral, PublicKeyToken=121fae78165ba3d4" validate="false" /> <add path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" verb="*" validate="false" /> <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" /> </httpHandlers> <httpModules> <add name="RadUploadModule" type="Telerik.Web.UI.RadUploadHttpModule" /> </httpModules> <!-- ASMX is mapped to a new handler so that proxy JavaScripts can also be served. --> <pages validateRequest="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID" theme="Zinfandel"> <namespaces> <clear /> <add namespace="AgencyHome" /> <add namespace="AgencyHome.UI" /> <add namespace="AgencyHome.UI.Controls" /> <add namespace="AgencyHome.Data" /> <add namespace="AgencyHome.Business" /> <add namespace="System" /> <add namespace="System.Collections" /> <add namespace="System.Collections.Specialized" /> <add namespace="System.Configuration" /> <add namespace="System.Text" /> <add namespace="System.Text.RegularExpressions" /> <add namespace="System.Web" /> <add namespace="System.Web.Caching" /> <add namespace="System.Web.SessionState" /> <add namespace="System.Web.Security" /> <add namespace="System.Web.Profile" /> <add namespace="System.Web.UI" /> <add namespace="System.Web.UI.WebControls" /> <add namespace="System.Web.UI.WebControls.WebParts" /> <add namespace="System.Web.UI.HtmlControls" /> <add namespace="BaseClasses" /> <add namespace="BaseClasses.Web.UI.WebControls" /> </namespaces> <controls> <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </controls> </pages> <!-- CUSTOM ERROR MESSAGES Set customErrors mode="On" or "RemoteOnly" to enable custom error messages, "Off" to disable. Add <error> tags for each of the errors you want to handle. --> <customErrors mode="RemoteOnly" defaultRedirect="Shared/Internal_Server_Error.html"> <error statusCode="404" redirect="Shared/Internal_Server_Error.html" /> <error statusCode="500" redirect="Shared/Internal_Server_Error.html" /> </customErrors> <!-- AUTHENTICATION This section sets the authentication policies of the application. Possible modes are "Windows", "Forms", "Passport" and "None" --> <authentication mode="Windows" /> <!-- IDENTITY Set Impersonate="true" to enable IIS to run this application under the credentials of the current user. Set Impersonate="false" to enable Active Directory single sign-in. Note: "false" disables Active Directory authentication for localhost. --> <identity impersonate="true" password="winter9529" userName="INSWHL\mhansen" /> <!-- AUTHORIZATION This section sets the authorization policies of the application. You can allow or deny access to application resources by user or role. Wildcards: "*" mean everyone, "?" means anonymous (unauthenticated) users. --> <authorization> <allow users="*" /> <!-- Allow all users --> <!-- <allow users="[comma separated list of users]" roles="[comma separated list of roles]"/> <deny users="[comma separated list of users]" roles="[comma separated list of roles]"/> --> </authorization> <!-- APPLICATION-LEVEL TRACE LOGGING Application-level tracing enables trace log output for every page within an application. Set trace enabled="true" to enable application trace logging. If pageOutput="true", the trace information will be displayed at the bottom of each page. Otherwise, you can view the application trace log by browsing the "trace.axd" page from your web application root. --> <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" /> <!-- SESSION STATE SETTINGS By default ASP.NET uses cookies to identify which requests belong to a particular session. If cookies are not available, a session can be tracked by adding a session identifier to the URL. To disable cookies, set sessionState cookieless="true". --> <sessionState mode="InProc" stateConnectionString="tcpip=127.1.0.1:42424" sqlConnectionString="data source=127.1.0.1;user id=sa;password=" cookieless="false" timeout="60" /> <!-- GLOBALIZATION This section sets the globalization settings of the application. Set responseEncoding to an appropriate value to ensure emails sent from your application are correctly encoded and display your language’s complete character set. For example, if your default language is French and you want French characters from the extended French character set to be correctly included and displayed in your emails, may set responseEncoding to “windows-1252”. Remove the responseEncoding parameter to use the setting in your machine.config file or to use the encoding defaults in your computer's Regional Options locale setting. --> <globalization fileEncoding="utf-8" requestEncoding="utf-8" responseEncoding="utf-8" culture="en-US" uiCulture="en-US" /> <!-- HTTP RUN TIME This section sets the run time settings of the application. --> <httpRuntime maxRequestLength="10240" requestValidationMode="2.0" /> </system.web> <location path="DefaultWsdlHelpGenerator.aspx"> <system.web> <pages styleSheetTheme="" /> </system.web> </location> <system.webServer> <validation validateIntegratedModeConfiguration="false" /> <modules runAllManagedModulesForAllRequests="true"> <add name="RadUploadModule" preCondition="integratedMode" type="Telerik.Web.UI.RadUploadHttpModule" /> </modules> <handlers> <add name="Telerik_Web_UI_WebResource_axd" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" /> <add name="Telerik_RadUploadProgressHandler_ashx" verb="*" preCondition="integratedMode" path="Telerik.RadUploadProgressHandler.ashx" type="Telerik.Web.UI.RadUploadProgressHandler" /> <remove name="ChartImageHandler" /> <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> </handlers> </system.webServer> <!-- Following Section is used for data access layer where clauses and formulas Please modify this section using Batch Meister Wizard instead of directly making changes here. --> <DataAccessLayerWhereClause> <WhereClauses> <WhereClause Apply="false"> <LHS>CompanyIDForMultiTenantApps1</LHS> <RHS>GetColumnValue("User",UserID(),"CompanyID")</RHS> <Operand>=</Operand> </WhereClause> <WhereClause Apply="false"> <LHS>CompanyIDForMultiTenantApps2</LHS> <RHS>Session("CompanyID")</RHS> <Operand>=</Operand> </WhereClause> </WhereClauses> <Formulas> <Formula Apply="false"> <ColumnName>CreatedBy</ColumnName> <Value>UserID()</Value> <Event>Initialize when inserting</Event> </Formula> <Formula Apply="false"> <ColumnName>BirthDate</ColumnName> <Value>If(BirthDate > Today() , "Birthdate cannot be in the future" , "")</Value> <Event>Validate when inserting</Event> </Formula> <Formula Apply="false"> <ColumnName>UpdatedOn</ColumnName> <Value>Today()</Value> <Event>Initialize when updating</Event> </Formula> <Formula Apply="false"> <ColumnName>CreatedOn</ColumnName> <Value>Today()</Value> <Event>Initialize when inserting</Event> </Formula> <Formula Apply="false"> <ColumnName>UpdatedBy</ColumnName> <Value>UserID()</Value> <Event>Initialize when updating</Event> </Formula> </Formulas> </DataAccessLayerWhereClause></configuration>