<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>jQuery Grid Plugin - jqGrid - Topic: AjaxFileUpload failing for MVC3 jqGrid  add method</title>
	<link>http://www.trirand.com/blog/?page_id=393/help/ajaxfileupload-failing-for-mvc3-jqgrid-add-method</link>
	<description><![CDATA[Grid plugin]]></description>
	<generator>Simple:Press Version 5.7.5.3</generator>
	<atom:link href="http://www.trirand.com/blog/?page_id=393/help/ajaxfileupload-failing-for-mvc3-jqgrid-add-method/rss" rel="self" type="application/rss+xml" />
        <item>
        	<title>rre9518 on AjaxFileUpload failing for MVC3 jqGrid  add method</title>
        	<link>http://www.trirand.com/blog/?page_id=393/help/ajaxfileupload-failing-for-mvc3-jqgrid-add-method#p27168</link>
        	<category>Help</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/help/ajaxfileupload-failing-for-mvc3-jqgrid-add-method#p27168</guid>
        	        	<description><![CDATA[<p>The problem was with the controller.&#160;&#160; jqGrid sends the files just fine, but it packs them into the request rather than passing back the file as an argument.&#160; The solution can be found by looking at the controller code here:</p>
<p class="MsoNormal" style="margin: 0in 0in 0pt;"><a href="https://github.com/maxpavlov/jQuery-File-Upload.MVC3/blob/master/jQuery-File-Upload.MVC3/Controllers/HomeController.cs" target="_blank"><span style="font-family: Calibri; font-size: small;"></span></a><a rel="nofollow" href="https://github.com/maxpavlov/jQuery-File-Upload.MVC3/blob/master/jQuery-File-Upload.MVC3/Controllers/HomeController.cs" target="_blank">https://github.com/maxpavlov/jQuery-File-Upload.MVC3/blob/master/jQuery-File-Upload.MVC3/Controllers/HomeController.cs</a></p>
]]></description>
        	        	<pubDate>Sun, 19 Aug 2012 19:36:35 +0300</pubDate>
        </item>
        <item>
        	<title>tony on AjaxFileUpload failing for MVC3 jqGrid  add method</title>
        	<link>http://www.trirand.com/blog/?page_id=393/help/ajaxfileupload-failing-for-mvc3-jqgrid-add-method#p27163</link>
        	<category>Help</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/help/ajaxfileupload-failing-for-mvc3-jqgrid-add-method#p27163</guid>
        	        	<description><![CDATA[<p>Hello,</p>
</p>
<p>Sorry, but my ASP NET MVC knowledge is very limited.</p>
<p>Basically -&#160; should I think that you want to submit the file contents&#160; again with record add/edit?</p>
<p>The afterSubmit indicates this behaviour.</p>
<p>Maybe you will neeed maybe to set async false in ajaxFileUpload.</p>
</p>
<p>Also please try first to make a working ASP NET MVC upload not using jqGrid form edit.</p>
</p>
<p>Best Regards</p>
<p>Tony</p>
]]></description>
        	        	<pubDate>Sun, 19 Aug 2012 15:29:39 +0300</pubDate>
        </item>
        <item>
        	<title>rre9518 on AjaxFileUpload failing for MVC3 jqGrid  add method</title>
        	<link>http://www.trirand.com/blog/?page_id=393/help/ajaxfileupload-failing-for-mvc3-jqgrid-add-method#p27160</link>
        	<category>Help</category>
        	<guid isPermaLink="true">http://www.trirand.com/blog/?page_id=393/help/ajaxfileupload-failing-for-mvc3-jqgrid-add-method#p27160</guid>
        	        	<description><![CDATA[<p><strong>What I&#39;m looking for is a working example of jqGrid file upload&#160; from&#160; the add/edit form &#160;in an Microsoft MVC C# application.</strong></p>
</p>
<p>This is what I&#39;ve tried, (among others) and I always end up with a&#160; null file passed back to the controller.</p>
<p>MVC3 app using :</p>
<p>AjaxFileUpload.js</p>
<p>jQuery-1.7.2</p>
<p>jqGrid-1.4.4</p>
</p>
<p><span style="text-decoration: underline;">I apologize for the formatting.&#160; If there&#39;s a way to retain indentations please tell me.&#160; I&#39;ll resubmit.</span></p>
</p>
<p>The AfterSubmit for the "Add function" &#160;is called but kicks out with ret undefined.</p>
<p>Occuring at line 7532:</p>
<div id="sb6-L7528" class="sourceRow "><span class="sourceRowText">if( ret[0] &#38;&#38; $.isFunction(rp_ge[$t.p.id].afterSubmit) ) { </span></div>
<div id="sb6-L7529" class="sourceRow"><span class="sourceRowText">ret = rp_ge[$t.p.id].afterSubmit.call($t, data,postdata); </span></div>
<div id="sb6-L7530" class="sourceRow"><span class="sourceRowText">} </span></div>
<div class="sourceRow"><span class="sourceRowText"><em>ret in undefined</em></span><span class="sourceRowText">?</span></div>
<div class="sourceRow"><span class="sourceRowText">&#160;</span></div>
<p>I&#39;m not sure what the response should be from the CreateAttachmentRecord, which is used in the data argument.&#160; .&#160;I&#39;m sending:<em>{"id":"fileToUpload", "success"=true}.</em>&#160;&#160; I suspect the data field is wrong, but don&#39;t know what I should have there.</p>
<p>JQUERY CODE:</p>
</p>
<p>$(document).ready(function () {</p>
<p>&#39;use strict&#39;;</p>
<p>jQuery("#table").jqGrid({</p>
<p>datatype: "local",</p>
<p>height: 250,</p>
<p>editurl: "Home/CreateAttachmentRecord",</p>
<p>colNames:[&#39;fileToUpload&#39;,&#39;Title&#39;,&#39;Description&#39;,&#39;Control Class&#39;,&#39;Added By&#39;],</p>
<p>colModel:[</p>
<p style="PADDING-LEFT: 30px">{</p>
<p style="PADDING-LEFT: 30px">name: &#39;fileToUpload&#39;,</p>
<p style="PADDING-LEFT: 30px">index: &#39;Attachment&#39;,</p>
<p style="PADDING-LEFT: 30px">align: &#39;left&#39;,</p>
<p style="PADDING-LEFT: 30px">editable: true,</p>
<p style="PADDING-LEFT: 30px">edittype: &#39;file&#39;,</p>
<p style="PADDING-LEFT: 30px">editoptions: {</p>
<p style="PADDING-LEFT: 30px">enctype: "multipart/form-data"</p>
<p style="PADDING-LEFT: 30px">},</p>
<p style="PADDING-LEFT: 30px">width: 210,</p>
<p style="PADDING-LEFT: 30px">search: false,</p>
<p style="PADDING-LEFT: 30px">editrules:{required:true}</p>
<p style="PADDING-LEFT: 30px">},</p>
<p style="PADDING-LEFT: 30px">{name:&#39;Title&#39;,index:&#39;Title&#39;, width:50, editrules:{required:false}, editable:true, sorttype:"string"},</p>
<p style="PADDING-LEFT: 30px">{name:&#39;Description&#39;,index:&#39;Description&#39;, width:100, editrules:{ required:true}, editable:true,sorttype:"string"},</p>
<p style="PADDING-LEFT: 30px">{name:&#39;ControlClass&#39;,index:&#39;ControlClass&#39;, width:10, editrules:{ required:true}, editable:true, sorttype:"string"},</p>
<p style="PADDING-LEFT: 30px">{name:&#39;AddedBy&#39;,index:&#39;AddedBy&#39;, width:50, editrules:{required:true}, editable:true,sorttype:"string"},</p>
<p>],</p>
<p>multiselect: true,</p>
<p>caption: "Attachments for: [CR Name Here]",</p>
<p>rowNum:10,</p>
<p>rowList:[10,20,30],</p>
<p>pager: &#39;#pager&#39;,</p>
<p>sortname: &#39;Filename&#39;,</p>
<p>viewrecords: true,</p>
<p>sortorder: "desc",</p>
<p>});</p>
<p>var mydata = [</p>
<p style="padding-left: 30px;">@foreach (var attach in Model) {</p>
<p style="padding-left: 60px;">@Html.Raw("{");</p>
<p style="padding-left: 60px;">@Html.Raw( string.Format(</p>
<p style="padding-left: 90px;">"fileToUpload: "{0}",Title: "{1}",Description: "{2}",ControlClass: "{3}",AddedBy: "{4}" ",</p>
<p style="padding-left: 90px;">attach.Filename,</p>
<p style="padding-left: 90px;">attach.Title,</p>
<p style="padding-left: 90px;">attach.Description,</p>
<p style="padding-left: 90px;">attach.ControlClass,</p>
<p style="padding-left: 90px;">attach.AddedByName</p>
<p style="padding-left: 60px;">)</p>
<p style="padding-left: 30px;">)</p>
<p style="padding-left: 30px;">@Html.Raw("},n");</p>
<p style="padding-left: 30px;">}</p>
<p>];</p>
<p>for(var i=0;i&#60;mydata.length;i++) {</p>
<p style="PADDING-LEFT: 30px">jQuery(&#39;#table&#39;).jqGrid(&#39;addRowData&#39;,i+1,mydata[i]);</p>
<p>};</p>
<p>jQuery("#table").jqGrid(&#39;navGrid&#39;,&#39;#pager&#39;,</p>
<p style="PADDING-LEFT: 30px">{del:true,add:true,edit:true},</p>
<p style="PADDING-LEFT: 30px">{ jqModal:true,closeAfterEdit: true,recreateForm:true,onInitializeForm : function(formid){ //editoptions</p>
<p style="PADDING-LEFT: 60px">$(formid).attr(&#39;method&#39;,&#39;POST&#39;);</p>
<p style="PADDING-LEFT: 60px">$(formid).attr(&#39;action&#39;,&#39;&#39;);</p>
<p style="PADDING-LEFT: 60px">$(formid).attr(&#39;enctype&#39;,&#39;multipart/form-data&#39;);</p>
<p style="PADDING-LEFT: 30px">},</p>
<p style="PADDING-LEFT: 30px">afterSubmit : function(response, postdata){</p>
<p style="PADDING-LEFT: 60px">$.ajaxFileUpload({</p>
<p style="PADDING-LEFT: 60px">url: &#39;Home/UploadFile&#39;,</p>
<p style="PADDING-LEFT: 60px">secureuri:false,</p>
<p style="PADDING-LEFT: 60px">fileElementId:&#39;fileToUpload&#39;,</p>
<p style="PADDING-LEFT: 60px">dataType: &#39;JSON&#39;,</p>
<p style="PADDING-LEFT: 60px">success: function (data, status) {</p>
<p style="PADDING-LEFT: 90px">alert("Upload Complete.");</p>
<p style="PADDING-LEFT: 60px">}</p>
<p style="padding-left: 30px;">});</p>
<p style="PADDING-LEFT: 30px">}</p>
<p style="PADDING-LEFT: 30px">},</p>
<p style="PADDING-LEFT: 30px">{jqModal:true,closeAfterAdd: true,recreateForm:true,onInitializeForm : function(formid){</p>
<p style="padding-left: 60px;">$(formid).attr(&#39;method&#39;,&#39;POST&#39;);</p>
<p style="padding-left: 60px;">$(formid).attr(&#39;action&#39;,&#39;&#39;);</p>
<p style="padding-left: 60px;">$(formid).attr(&#39;enctype&#39;,&#39;multipart/form-data&#39;);</p>
<p style="padding-left: 60px;">},</p>
<p style="padding-left: 60px;">afterSubmit : function(response, postdata){</p>
<p style="padding-left: 90px;">$.ajaxFileUpload({</p>
<p style="padding-left: 90px;">url: &#39;Home/UploadFile&#39;,</p>
<p style="padding-left: 90px;">secureuri:false,</p>
<p style="padding-left: 90px;">fileElementId:&#39;fileToUpload&#39;,</p>
<p style="padding-left: 90px;">dataType: &#39;JSON&#39;,</p>
<p style="padding-left: 90px;">success: function (data, status) {</p>
<p style="padding-left: 90px;">alert("Upload Complete.");</p>
<p style="padding-left: 60px;">}</p>
<p style="PADDING-LEFT: 30px">});</p>
<p>}</p>
<p>}</p>
<p>);</p>
</p>
<p><strong>&#160;</strong></p>
<p><strong>CONTROLLER CODE:</strong></p>
<p>HttpPost]</p>
<p>public ActionResult UploadFile(HttpPostedFileBase file)</p>
<p>{</p>
<p style="padding-left: 30px;">string foldername = "~/App_data/" + "5397&#8243;;</p>
<p style="padding-left: 30px;">if (!Directory.Exists(Server.MapPath(foldername)))</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 30px;">Directory.CreateDirectory(Server.MapPath(foldername));</p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 30px;">if (file != null &#38;&#38; file.ContentLength &#62; 0)</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 60px;">// extract only the fielname</p>
<p style="padding-left: 60px;">var fileName = Path.GetFileName(file.FileName);</p>
<p style="padding-left: 60px;">// store the file inside ~/App_Data/uploads folder</p>
<p style="padding-left: 60px;">var path = Path.Combine(Server.MapPath(foldername), fileName);</p>
<p style="padding-left: 60px;">file.SaveAs(path);</p>
<p style="padding-left: 30px;">}</p>
<p style="padding-left: 30px;">return Json(new</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 60px;">success = true</p>
<p style="padding-left: 30px;">}, JsonRequestBehavior.AllowGet);</p>
<p>}</p>
<p>// This action handles the form POST and the upload</p>
<p>[HttpPost]</p>
<p>public ActionResult CreateAttachmentRecord(string filename,string title, string description, string controlClass, string addedby)</p>
<p>{</p>
<p style="padding-left: 30px;">AttachmentModel attach = new AttachmentModel();</p>
<p style="padding-left: 30px;">attach.Filename = filename;</p>
<p style="padding-left: 30px;">attach.Description = description;</p>
<p style="padding-left: 30px;">attach.ControlClass = controlClass;</p>
<p style="padding-left: 30px;">attach.AddedByName = "the current user";</p>
<p style="padding-left: 30px;">attach.Title = title;</p>
<p style="padding-left: 30px;">attachments.Add(attach);</p>
<p style="padding-left: 30px;">return Json(new</p>
<p style="padding-left: 30px;">{</p>
<p style="padding-left: 60px;">id = "fileToUpload",</p>
<p style="padding-left: 60px;">success = true</p>
<p style="padding-left: 30px;">}, JsonRequestBehavior.AllowGet);</p>
<p>}</p>
]]></description>
        	        	<pubDate>Fri, 17 Aug 2012 22:33:40 +0300</pubDate>
        </item>
</channel>
</rss>