Delete before submit without postback?

Last post 03-31-2011, 12:07 PM by Eric. 3 replies.
Sort Posts: Previous Next
  •  03-29-2011, 7:40 AM 66913

    Delete before submit without postback?

    Hi,
     
    I am using the UploadAttachments but do not want to do a postback when each file is uploaded (to temp directory) so I have set CuteWebUI_AjaxUploader_OnPostback() to return false and that works fine. However is it possible to add a cancel button to let user cancel the upload? I can't get it to work. Client side code:

    <
    CuteWebUI:UploadAttachments InsertText="Upload Multiple File(s)" runat="server" ID="Attachments1" ManualStartUpload="false" MultipleFilesUpload="true" ><InsertButtonStyle /></CuteWebUI:UploadAttachments>
     
    function CuteWebUI_AjaxUploader_OnPostback() { return false; }
     
    Best Regards, David
  •  03-29-2011, 9:26 AM 66914 in reply to 66913

    Re: Delete before submit without postback?

    Dear LUT,
     
    Please refer to the following snippet, you can click "Cancel All" to cancel the whole upload or click "Remove" icon to cancel the upload of specific file:
     
    <%@ Page Language="C#" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <script runat="server">  
       
        void InsertMsg(string msg)
        {
            ListBoxEvents.Items.Insert(0, msg);
            ListBoxEvents.SelectedIndex = 0;
        }
        void SubmitButton_Click(object sender, EventArgs e)
        {
            InsertMsg("You clicked the Submit Button.");
            InsertMsg("You have uploaded " + uploadcount + "/" + Uploader1.Items.Count + " files.");
        }

        int uploadcount = 0;

        void Uploader_FileUploaded(object sender, UploaderEventArgs args)
        {
            uploadcount++;

            Uploader uploader = (Uploader)sender;
            InsertMsg("File uploaded! " + args.FileName + ", " + args.FileSize + " bytes.");

            //Copys the uploaded file to a new location.
            //args.CopyTo(path);
            //You can also open the uploaded file's data stream.
            //System.IO.Stream data = args.OpenStream();
        }

        protected override void OnPreRender(EventArgs e)
        {
            SubmitButton.Attributes["itemcount"] = Uploader1.Items.Count.ToString();

            base.OnPreRender(e);
        }
     
    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        <title>Start uploading manually</title>
        <link rel="stylesheet" href="demo.css" type="text/css" />
    </head>
    <body>
        <form id="form1" runat="server">
            <div class="content">
                <h2>
                    Start uploading manually</h2>
                <p>
                    This sample demonstrates how to start uploading manually after file selection vs
                    automatically.</p>
                <CuteWebUI:UploadAttachments runat="server" ManualStartUpload="true" ID="Uploader1"
                    InsertText="Browse Files (Max 1M)" OnFileUploaded="Uploader_FileUploaded">
                    <ValidateOption MaxSizeKB="1024" />
                </CuteWebUI:UploadAttachments>
                <br />
                <br />
                <asp:Button runat="server" ID="SubmitButton" OnClientClick="return submitbutton_click()"
                    Text="Submit" OnClick="SubmitButton_Click" />
                <br />
                <br />
                <div>
                    <asp:ListBox runat="server" ID="ListBoxEvents" Width="400"></asp:ListBox>
                </div>

                <script type="text/javascript">

                    function submitbutton_click() {                  
                        var submitbutton = document.getElementById('<%=SubmitButton.ClientID %>');
                        var uploadobj = document.getElementById('<%=Uploader1.ClientID %>');
                        if (!window.filesuploaded) {
                            if (uploadobj.getqueuecount() > 0) {
                                uploadobj.startupload();
                            }
                            else {
                                var uploadedcount = parseInt(submitbutton.getAttribute("itemcount")) || 0;
                                if (uploadedcount > 0) {
                                    return true;
                                }
                                alert("Please browse files for upload");
                            }
                            return false;
                        }
                        window.filesuploaded = false;
                        return true;
                    }
                    function CuteWebUI_AjaxUploader_OnPostback() {                  
                        window.filesuploaded = true;
                        var submitbutton = document.getElementById('<%=SubmitButton.ClientID %>');
                        submitbutton.click();
                        return false;
                    }
                </script>

            </div>
        </form>
    </body>
    </html>

    Thank you for asking
  •  03-31-2011, 5:54 AM 66937 in reply to 66914

    Re: Delete before submit without postback?

    This approach worked. The upload (to temp folder) will be on submit and not when a file is selected but that is ok. Thanks for the help!
     
    BR, David
  •  03-31-2011, 12:07 PM 66941 in reply to 66937

    Re: Delete before submit without postback?

    You are welcome.
View as RSS news feed in XML