Serenity.UploadHelper.AddUploadInput C# (CSharp) Method

AddUploadInput() public static method

public static AddUploadInput ( UploadInputOptions options ) : jQueryObject
options UploadInputOptions
return jQueryObject
        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;
        }

Usage Example

Exemplo n.º 1
0
        public ImageUploadEditor(jQueryObject div, ImageUploadEditorOptions opt)
            : base(div, opt)
        {
            div.AddClass("s-ImageUploadEditor");

            if (options.OriginalNameProperty.IsEmptyOrNull())
            {
                div.AddClass("hide-original-name");
            }

            var self = this;

            toolbar = new Toolbar(J("<div/>").AppendTo(this.Element), new ToolbarOptions
            {
                Buttons = GetToolButtons()
            });

            var progress = J("<div><div></div></div>").AddClass("upload-progress")
                           .PrependTo(toolbar.Element);

            var addFileButton = toolbar.FindButton("add-file-button");

            uploadInput = UploadHelper.AddUploadInput(new UploadInputOptions
            {
                Container = addFileButton,
                InputName = this.uniqueName,
                Zone      = this.element,
                Progress  = progress,
                FileDone  = (response, name, data) =>
                {
                    if (!UploadHelper.CheckImageConstraints(response, options))
                    {
                        return;
                    }

                    var newEntity = new UploadedFile
                    {
                        OriginalName = name,
                        Filename     = response.TemporaryFile
                    };

                    self.entity = newEntity;
                    self.Populate();
                    self.UpdateInterface();
                }
            });

            fileSymbols = jQuery.FromHtml("<ul/>")
                          .AppendTo(this.element);

            this.UpdateInterface();
        }