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