jqgrid - загрузить файл в диалоге добавления / редактирования
Я новичок в jqgrid и многому научился благодаря вашему ответу.
Теперь у меня проблема: я хочу загружать файлы при добавлении или изменении записей в jqgrid?
Это мой код:
{
name: 'File',
index: 'file',
hidden: true,
enctype: "multipart/form-data",
editable: true,
edittype: 'file',
editrules: {
edithidden: true,
required: true
},
formoptions: {
elmsuffix: '*'
}
}
Однако поле, которое я получил в контроллере, всегда будет нулевым:(. Любое предложение
Кто-нибудь знает рабочий пример?
заранее спасибо
ОБНОВИТЬ
Я нашел очень хороший пример на http://tpeczek.codeplex.com/releases
1 ответ
Решение
Я получил его только вчера... вот мой столбец colModel для загрузки файла,
{
name: 'fileToUpload',
index: 'customer_id',
align: 'left',
editable: true,
edittype: 'file',
editoptions: {
enctype: "multipart/form-data"
},
width: 210,
align: 'center',
formatter: jgImageFormatter,
search: false
}
Вы должны установить afterSubmit: UploadImage. Он загружает файл только после публикации данных и получения ответа. Я проверяю здесь, что если вставка была успешной, тогда только начните загрузку, иначе покажите ошибку. Я использовал Jquery Ajax File Uploader.
function UploadImage(response, postdata) {
var data = $.parseJSON(response.responseText);
if (data.success == true) {
if ($("#fileToUpload").val() != "") {
ajaxFileUpload(data.id);
}
}
return [data.success, data.message, data.id];
}
function ajaxFileUpload(id)
{
$("#loading")
.ajaxStart(function () {
$(this).show();
})
.ajaxComplete(function () {
$(this).hide();
});
$.ajaxFileUpload
(
{
url: '@Url.Action("UploadImage")',
secureuri: false,
fileElementId: 'fileToUpload',
dataType: 'json',
data: { id: id },
success: function (data, status) {
if (typeof (data.success) != 'undefined') {
if (data.success == true) {
return;
} else {
alert(data.message);
}
}
else {
return alert('Failed to upload logo!');
}
},
error: function (data, status, e) {
return alert('Failed to upload logo!');
}
}
) }