2011-09-26 15 views
6

Soy nuevo en jqgrid y he aprendido muchas cosas a través de su respuesta.
Ahora tengo un problema: ¿quiero cargar archivos al agregar o modificar registros a una jqgrid?

Este es mi código:

jqgrid - cargue un archivo en el diálogo agregar/editar

{ 
    name: 'File', 
    index: 'file', 
    hidden: true, 
    enctype: "multipart/form-data", 
    editable: true, 
    edittype: 'file', 
    editrules: { 
     edithidden: true, 
     required: true 
    }, 
    formoptions: { 
     elmsuffix: '*' 
    } 
} 



Sin embargo el campo que tengo en el controlador siempre será nula :(Cualquier sugerencia
Alguien sabe trabajar ejemplo
Gracias de antemano

.? ACTUALIZACIÓN
He encontrado un muy buen ejemplo en http://tpeczek.codeplex.com/releases

+2

Tu enlace hace que me envíe a una página donde no encontré ninguna pista, ya que dijo que es un buen ejemplo. – Tareq

+0

Descargue jqGrid en ASP.NET MVC - Edición, TinyMCE, Carga (http://tpeczek.codeplex.com/releases/view/63305). Es una versión operativa – Dranix

Respuesta

5

lo tengo trabajando solo yesterday..here es mi columna colModel para la carga de archivos,

{ 
    name: 'fileToUpload', 
    index: 'customer_id', 
    align: 'left', 
    editable: true, 
    edittype: 'file', 
    editoptions: { 
     enctype: "multipart/form-data" 
    }, 
    width: 210, 
    align: 'center', 
    formatter: jgImageFormatter, 
    search: false 
} 

Usted tiene que fijar afterSubmit: uploadImage. Sube el archivo solo después de que se hayan publicado los datos & ha vuelto la respuesta. Estoy comprobando aquí que si el inserto fue exitoso, entonces solo comience a cargar el error else show. He usado 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!'); 
      } 
     } 
    )   }                        
+0

¿Por qué se agrega en el evento afterSubmit? ¡Gracias! –

+0

Me estoy preparando Estado: 0, texto de respuesta: "", estado: 0, estadoTexto: "error" dentro de la función UploadImage. ¿Algunas ideas? – mikemike396

+1

No escribió el código de su formateo personalizado 'formatter: jgImageFormatter'. También mencione el enlace de la biblioteca fileUpload que ha utilizado en su solución. El enlace actual está muerto – sohaiby

Cuestiones relacionadas