2012-04-26 30 views
0

我想要做的就是這樣。
提交表單後,表單中的值將傳遞給控制器​​,並將值轉換並返回到數據表。

我知道如何從控制器返回json數據到數據表。
另外我知道如何通過Ajax.BeginForm將表單值傳遞給控制器​​。
但我不知道如何做到這兩者。
這裏是我的代碼,只是返回固定的JSON數據到數據表。
如何將表單值傳遞給控制器​​並將值返回給jQuery數據表

查看

<script type="text/javascript"> 

     function PullIntoTable() { 
      $('#example').dataTable({ 
       "bDestroy": true, 
       "bAutoWidth": false, 
       "aoColumns": [ 
       { sWidth: '30%' }, 
       { sWidth: '10%' }, 
       { sWidth: '20%' }, 
       { sWidth: '20%' }, 
       { sWidth: '20%' }, ], 
       "sAjaxSource": '@Url.Action("Search", "SearchCompany")', 
       "fnServerData": function (sSource, aoData, fnCallback) { 
        $.ajax({ 
         dataType: 'json', 
         type: "POST", 
         url: sSource, 
         data: aoData, 
         success: function (json) { 
          fnCallback(json); 
         } 
        }) 
       } 
      }); 
     }; 

    </script> 

    <input type="submit" value="Search" onclick="PullIntoTable()" /> 


<table cellpadding="0" cellspacing="0" border="0" class="search_result" id="example" width="100%"> 
    <thead> 
     <tr> 
      <th>Company</th> 
      <th>Location</th> 
      <th>Address</th> 
      <th>Status</th> 
      <th>Inactive</th> 
     </tr> 
    </thead> 
    <tbody> 
    </tbody> 
    <tfoot> 
     <tr> 
      <th></th> 
      <th></th> 
      <th></th> 
      <th></th> 
      <th></th> 
     </tr> 
    </tfoot> 
</table> 

控制器

public class SearchCompanyController : Controller 
{ 
    [HttpPost] 
    public ActionResult Search() 
    { 
     var Result = new List<Result>() 
     { 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"}, 
      new Result{Name="DummyCompany", Location="DummyLocation", Address="DummyAddress", Status="SL", Inactive="Y"} 
     }; 

     return Json(
      new { aaData = Result.Select(x => new[] { x.Name, x.Location, x.Address, x.Status, x.Inactive }) }, 
      JsonRequestBehavior.DenyGet 
      ); 
    } 
} 

public struct Result 
{ 
    public string Name { get; set; } 
    public string Location { get; set; } 
    public string Address { get; set; } 
    public string Status { get; set; } 
    public string Inactive { get; set; } 
} 

回答

1

數據表要求在very specific format的數據。

There's an example using OpenSearch,您可以收集細節以用於您的特定實現(例如,在JavaScript中爲回調構造json對象的非數據表特定實現)。這個解決方案最吸引我,因爲它將數據表特定的實現細節保留在服務器端代碼之外。

已經有asp.net samples on the datatables.net site給你很大一切你需要,雖然在相當醜陋的匈牙利符號格式。

我沒有在我的指尖示例,但我確實採取了C#示例並將其轉換爲actionfilter,因此我不必處理匈牙利符號。如果我願意遵守,而且您有興趣,我會看看我是否可以在此發佈。

+0

謝謝。我現在先看網站。 – Nigiri 2012-04-26 01:33:11

0

它被解決了。
我能得到從控制器值,並將其拉入數據表像下面的

查看腳本

function PullIntoTable(e) { 
    $('#example').dataTable({ 
     "bDestroy": true, 
     "bAutoWidth": false, 
     "aoColumns": [ 
     { sWidth: '30%' }, 
     { sWidth: '10%' }, 
     { sWidth: '20%' }, 
     { sWidth: '20%' }, 
     { sWidth: '20%' }, ], 
     "aaData": e.aaData 
    }); 
}; 
相關問題