コード例 #1
0
        public static jQueryObject AddUploadInput(UploadInputOptions options)
        {
            options.Container.AddClass("fileinput-button");

            var uploadInput = jQuery.FromHtml("<input/>").Attribute("type", "file").Attribute("name", options.InputName + "[]")
                              .Attribute("data-url", Q.ResolveUrl("~/File/TemporaryUpload"))
                              .Attribute("multiple", "multiple")
                              .AppendTo(options.Container);

            if (options.AllowMultiple)
            {
                uploadInput.Attribute("multiple", "multiple");
            }

            uploadInput.As <dynamic>().fileupload(new
            {
                dataType  = "json",
                dropZone  = options.Zone,
                pasteZone = options.Zone,
                done      = new Action <jQueryEvent, dynamic>((e, data) =>
                {
                    var response = (UploadResponse)data.result;
                    if (options.FileDone != null)
                    {
                        options.FileDone(response, data.files[0].name, data);
                    }
                }),
                start = new Action(() =>
                {
                    Q.BlockUI();
                    if (options.Progress != null)
                    {
                        options.Progress.Show();
                    }
                }),
                stop = new Action(() =>
                {
                    Q.BlockUndo();
                    if (options.Progress != null)
                    {
                        options.Progress.Hide();
                    }
                }),
                progress = new Action <jQueryEvent, dynamic>((e, data) => {
                    if (options.Progress != null)
                    {
                        double percent = (double)data.loaded / (double)data.total * 100;
                        options.Progress.Children().CSS("width", percent.ToString() + "%");
                    }
                })
            });

            return(uploadInput);
        }
コード例 #2
0
        public static jQueryObject AddUploadInput(UploadInputOptions options)
        {
            options.Container.AddClass("fileinput-button");

            var uploadInput = jQuery.FromHtml("<input/>").Attribute("type", "file").Attribute("name", options.InputName + "[]")
                .Attribute("data-url", Q.ResolveUrl("~/File/TemporaryUpload"))
                .Attribute("multiple", "multiple")
                .AppendTo(options.Container);

            if (options.AllowMultiple)
                uploadInput.Attribute("multiple", "multiple");

            uploadInput.As<dynamic>().fileupload(new
            {
                dataType = "json",
                done = new Action<jQueryEvent, dynamic>((e, data) =>
                {
                    var response = (UploadResponse)data.result;
                    if (options.FileDone != null)
                        options.FileDone(response, data.files[0].name, data);
                }),
                start = new Action(() =>
                {
                    Q.BlockUI();
                    if (options.Progress != null)
                        options.Progress.Show();
                }),
                stop = new Action(() =>
                {
                    Q.BlockUndo();
                    if (options.Progress != null)
                        options.Progress.Hide();
                }),
                progress = new Action<jQueryEvent, dynamic>((e, data) => {
                    if (options.Progress != null)
                    {
                        double percent = (double)data.loaded / (double)data.total * 100;
                        options.Progress.Children().CSS("width", percent.ToString() + "%");
                    }
                })
            });

            return uploadInput;
        }