Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在jqGrid中支持文件上传?_Jquery_Asp.net Mvc_Asp.net Mvc 3_File Upload_Jqgrid - Fatal编程技术网

Jquery 如何在jqGrid中支持文件上传?

Jquery 如何在jqGrid中支持文件上传?,jquery,asp.net-mvc,asp.net-mvc-3,file-upload,jqgrid,Jquery,Asp.net Mvc,Asp.net Mvc 3,File Upload,Jqgrid,我的web应用程序基于ASP.net MVC3并使用jqGrid。我一直在支持jqGrid所需的文件上传功能 web应用程序useflow允许用户在其系统上选择一个文件,并从jqGrid添加/编辑表单将其上载到数据库记录。用于文件上载的jqGrid colModel的编辑类型设置为edittype:“文件”。在添加/编辑表单中,我可以查看“浏览…”按钮以选择图像。jqGrid文档建议使用Ajax文件上传插件进行文件上传。我找到了两个同名的插件,两个都试过了 Ajax文件上传插件来源:该插件与jq

我的web应用程序基于ASP.net MVC3并使用jqGrid。我一直在支持jqGrid所需的文件上传功能

web应用程序useflow允许用户在其系统上选择一个文件,并从jqGrid添加/编辑表单将其上载到数据库记录。用于文件上载的jqGrid colModel的编辑类型设置为
edittype:“文件”
。在添加/编辑表单中,我可以查看“浏览…”按钮以选择图像。jqGrid文档建议使用Ajax文件上传插件进行文件上传。我找到了两个同名的插件,两个都试过了

  • Ajax文件上传插件来源:该插件与jqGrid配合使用,但仅在使用较旧版本的jQuery时使用。由于在文件上传插件中使用了HandleError未记录的API,自jQuery 1.5以来,该功能已被破坏

  • Ajax文件上传插件。我已经能够从jqGrid之外成功地使用这个插件。我用于文件上传的脚本(在我的网格之外)如下所示:

    var uploader = new qq.FileUploader({
           element: fileUploader,
           action: @Url.Action("UploadProductImage"), 
           allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'], )};
    
  • 然而,我还没有找到一种方法将这个插件集成到jqgrid添加/编辑表单中。如何初始化上传脚本并调用它

    我不能使用基于Flash/HTML5的文件上传解决方案(例如Uploadify),因为我的应用程序需要与IE7和IE8协同工作。我很感激你给我的建议

    谢谢


    Robert

    我的解决方案是编写自己的非常短的HandleError函数,并且仍然使用Ajax文件上传插件,如中所述。因此,我使用该解决方案,但添加了以下功能:

    jQuery.extend({
        handleError: function( s, xhr, status, e ) {
            // If a local callback was specified, fire it
            if ( s.error )
                s.error( xhr, status, e );
            // If we have some XML response text (e.g. from an AJAX call) then log it in the console
            else if(xhr.responseText)
                console.log(xhr.responseText);
        }    
    });
    
    我在这里找到了函数:

    注意:还有一件事:我不得不改变路线

    dataType: 'json',
    


    为了让代码在Firefox中工作(在其他浏览器中,这应该不是问题)。

    这可能是一个很好的副本-但是我应该把$.extend({…})函数放在哪里?在调用任何其他JQuery功能之前,我把它放在javascript的顶部,就在text/javascript标记的下面。它是一个独立的javascript函数;不必嵌入到其他函数中。
    dataType: 'JSON',