2015-11-06 55 views
2

我擁有一個ASP.NET MVC應用程序,並且我使用的是來自dev express的 pivot grids,我需要使用一個頁面上的那些excel。該文件說,爲了導出樞軸網格,因爲它是在頁面上(保持列膨脹/展開),您需要將樞軸網格保留在表單中並提交。立即提交多個表單會中止所有表單提交,除了最後一個

我的問題是,當我提交頁面上的所有表單只有一個完成,其他人被取消。 我已經嘗試過使用ajaxForm插件,但不能保持網格,因爲它在頁面上(所有列都展開)。

我的問題是,如果您知道如果前一個已完成發佈,可以持續提交我的表單嗎?

我的形式看起來像這樣

<form class="table-content" method="post" target="excel-export-iframe" style="display: block;" action="url"> 

有一個隱藏的iframe爲目標

<iframe style="display: none" id="excel-export-iframe" name="excel-export-iframe"></iframe> 

這是代碼爲submiting他們

$(".table-content").each(function() { 
    $(this).submit(); 
}); 
+2

您只能使用標準方法一次提交一份表格。如果您需要提交多個,則需要使用AJAX。 –

回答

0

我最後再使用負載的功能發佈下一個表格等

<form class="table-content" method="post" target="excel-export-iframe" style="display: block;" action="@Url.Action("ExcelExport")"> 
<iframe style="display: none" id="excel-export-iframe" name="excel-export-iframe"></iframe> 

var submitArray; 

$("#excel-export-iframe").load(function() { 
    var status = $("#excel-export-iframe").contents().find("pre").text(); 
    if (status == "Post Successfull") { 
     if (submitArray.length != 0) {      
      $(submitArray .splice(0, 1)).submit(); 
     } 
    } 
}); 

$('.btn-export').click(function() { 
    submitArray = $(".table-content"); 
    $(submitArray .splice(0, 1)).submit(); 
} 

和Controller我回到這個目標的iframe裝載的東西:

public ActionResult ExcelExport(...) 
{ 
    ... 
    return Content("<pre>Post Successfull</pre>"); 
} 

我敢肯定這是不是最好的做法,但這種服務我的目的,我找不到任何其他的方式來發布多個表單考慮到使用Ajax不是一個選項

2

按照從評論@Rory

使用下面的AJAX代碼

$(".table-content").each(function() { 
    var data = $(this).serialize(); 
    $.post('url', data); 
}); 
+0

如果我使用後我的樞軸網格狀態不保留 –