Skip Navigation LinksHome / Community & Support / Developer Productivity Tools Forums / ASP.NET AJAX > Upload > RadUpload and javascript confirm() for overwriting files

Not answered RadUpload and javascript confirm() for overwriting files

Feed from this thread
  • John avatar

    Posted on Jan 31, 2012 (permalink)

    I have a RadWindowManager with RadWindow that opens a new window when a link within a RadGrid cell is clicked.  It opens the new window as a Modal="true".  In the new window's aspx page, it has a RadUpload, RadProgressArea and RadProgressManager, that uses TargetFolder="~/UploadFiles" and OverwriteExistingFiles="false".  What I would like is for it to check to see if the file exists already when the user submits the file.  If so, I want to present a javascript confirm() box to the user to ask if they want to overwrite the file.  If yes, then let it overwrite (and store the extra data in the database), if no, return back to the RadUpload popup window without saving the file (thus allowing them to cancel the process, rename the file on their hard drive and then re-upload).  I have tried using the submit button's click event handler to check for the file's existance, and if so, it calls a ClientScript.RegisterClientScriptBlock to register a confirm() box.  However, it doesn't seem to either fire or attach properly (or some other reason I can't figure out).  I've tried a number of different ways, but none are working.  The current version uses a hidden field to track if the file exists or not, but it's not working.  Any thoughts?
    ASPX:

    <script type="text/javascript">
            function CloseAndRebind() {
                GetRadWindow().BrowserWindow.refreshGrid();
                GetRadWindow().close();
            }
      
            function GetRadWindow() {
                var oWindow = null;
                if (window.radWindow) oWindow = window.radWindow; //Will work in Moz in all cases, including clasic dialog
                else if (window.frameElement.radWindow) oWindow = window.frameElement.radWindow; //IE (and Moz as well)
      
                return oWindow;
            }
      
            function CancelEdit() {
                GetRadWindow().close();
            }
      
            function ExecuteConfirm() {
                var returnValue = confirm('Warning: File exists.  Wanna overwrite?');
                if (returnValue) {
                    document.getElementById('FileExistsHidden').value = "1";
                    document.getElementById('SubmitButton').click();
                }
            }
      
            </script>
      
    <telerik:RadUpload ID="FileRadUpload" runat="server"
            ControlObjectsVisibility="ClearButtons" InitialFileInputsCount="1" 
            MaxFileInputsCount="1" TargetFolder="~/UploadFiles"
            OverwriteExistingFiles="false" InputSize="45" Width="500px">
        </telerik:RadUpload>
        <telerik:RadProgressArea ID="RadProgressArea1" runat="server"
            DisplayCancelButton="true"
            ProgressIndicators="TotalProgressBar, TotalProgress, RequestSize, FilesCountBar, FilesCount, SelectedFilesCount, CurrentFileName, TimeElapsed, TimeEstimated, TransferSpeed">
        </telerik:RadProgressArea>
        <telerik:RadProgressManager ID="RadProgressManager1" runat="server" />
            <hr />
            <asp:Button ID="SubmitButton" runat="server" Text="Submit" onclick="SubmitButton_Click" />
            <asp:HiddenField ID="FileExistsHidden" runat="server" />
    aspx.cs:
    protected void SubmitButton_Click(object sender, EventArgs e)
            {
                int customerDataId = MathHelper.ParseIntZeroIfNull(Request.QueryString.Get("cdid"));
                Type cstype = GetType();
                string warningScriptName = "PopupScript";
                string rebindScriptName = "RebindScript";
                ClientScriptManager cs = Page.ClientScript;
                  
                if (FileRadUpload.UploadedFiles.Count > 0)
                {
                    if (customerDataId > 0)
                    {
                        Customers customers = new Customers();
                        foreach (UploadedFile file in FileRadUpload.UploadedFiles)
                        {
                            if (customers.CustomerFileExists(file.GetName()))
                            {
                                if (FileExistsHidden.Value != "1")
                                {
                                    if (!cs.IsClientScriptBlockRegistered(SubmitButton.GetType(), warningScriptName))
                                    {
                                        cs.RegisterClientScriptBlock(GetType(), SubmitButton.ID, "ExecuteConfirm();", true);
                                    }
                                }
                                else
                                {
                                    FileExistsHidden.Value = "";
                                }
      
                            }
                            else
                            {
                                customers.InsertCustomerFile(customerDataId, file.GetName(), Portal.GetIdsid);
                            }
                        }
                    }
                }
      
                if (!cs.IsClientScriptBlockRegistered(GetType(), rebindScriptName))
                {
                    cs.RegisterClientScriptBlock(cstype, rebindScriptName, "CloseAndRebind();", true);
                }
            }

    Reply

  • Bozhidar Bozhidar admin's avatar

    Posted on Feb 1, 2012 (permalink)

    Hi John,

    I've prepared a sample page showing one way you can implement the desired functionality. In the page I use RadAsyncUpload, so that I can take advantage of it's PostBackTriggers property, which gives me the ability to postback the page without losing the state of the upload (required to check if the file exists on the server).

    You can use the approach shown in the example and apply it to your scenario.
     
    Greetings,
    Bozhidar
    the Telerik team
    If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to their blog feed now

    Reply

Back to Top

Skip Navigation LinksHome / Community & Support / Developer Productivity Tools Forums / ASP.NET AJAX > Upload > RadUpload and javascript confirm() for overwriting files
Related resources for "RadUpload and javascript confirm() for overwriting files"

ASP.NET Upload Features  |  Documentation  |  Demos  |  Telerik TV  |  Self-Paced Trainer  |  Step-by-step Tutorial  ]