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" />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); } }