2010-05-20 2 views
3

С помощью этого скрипта я получаю данные из JsonResult (GetDevicesTable) и поместить их в таблицу (ID = "OrderDevices")Beginner проблема размещения данных таблицы в JsonResult

<script type="text/javascript"> 

$(document).ready(function() { 

    $("#getDevices a").click(function() { 
     var Id = $(this).attr("rel"); 
     var rowToMove = $(this).closest("tr"); 
     $.post("/ImportXML/GetDevicesTable", { Id: Id }, function(data) { 
     if (data.success) { 
      //remove row 
      rowToMove.fadeOut(function() { $(this).remove() }); 
      //add row to other table 
      $("#OrderDevices").append("<tr><td>"+ data.DeviceId+ "</td><td>" + data.Id+ "</td><td>" + data.OrderId + "</td></tr>");      
      } else { 
       alert(data.ErrorMsg); 
      } 
     }, "json"); 
    }); 

}); 

<% using (Html.BeginForm()) {%> 
    <table id="OrderDevices" class="data-table"> 
    <tr> 

     <th> 
      DeviceId 
     </th> 
     <th> 
      Id 
     </th> 
     <th> 
      OrderId 
     </th> 
    </tr> 
    </table> 
     <p> 
      <input type="submit" value="Submit" /> 
     </p> 
<% } %> 

Когда нажмите on Отправить Мне нужно что-то вроде этого:

$(document).ready(function() { 

    $("#submit").click(function() { 
     var Id = $(this).attr("rel"); 
     var DeviceId = $(this).attr(???); 
     var OrderId = $(this).attr(???); 
     var rowToMove = $(this).closest("tr"); 
     $.post("/ImportXML/DevicesActions", { Id: Id, DeviceId:DeviceId, OrderId:OrderId }, function(data) { 

     }, "json"); 
    }); 
}); 

У меня проблема с этим скриптом, потому что не знаю, как сообщение Данные для этого JsonResult:

public JsonResult DevicesActions(int Id,int DeviceId,int OrderId) 
    { 
    orderdevice ord = new orderdevice(); 
      ord.Id = Id; 
      ord.OrderId = DeviceId; 
      ord.DeviceId = OrderId; 

      DBEntities.AddToorderdevice(ord); 
      DBEntities.SaveChanges(); 
    } 
+0

Какую 'Id',' DeviceId' и 'OrderId' вы хотите использовать, когда вы нажимаете кнопку отправки? Тот, который был вставлен в последнюю строку таблицы? –

+0

Я хочу все (Id, deviceId и OrderId). Все, что мне нужно в JsonResult DevicesActions – Ognjen

+0

Мне нужно опубликовать в JsonResult всю строку таблицы – Ognjen

ответ

2

Для того, чтобы получить все ids, deviceIds и orderIds из таблицы вам нужно будет изменить подпись действий, так что он может принимать массивы:

public ActionResult DevicesActions(int[] ids, int[] deviceIds, int[] orderIds) 
{ 
    ... 
} 

Теперь, у вас есть это в месте, вы можете отправить запрос AJAX:

var deviceIds = $('#OrderDevices tr td:first-child').map(getValue); 
var ids = $('#OrderDevices tr td:nth-child(2)').map(getValue); 
var orderIds = $('#OrderDevices tr td:nth-child(3)').map(getValue); 
$.post(
    '/ImportXML/DevicesActions', 
    { 
     deviceIds: deviceIds, 
     ids: ids, 
     orderIds: orderIds 
    }, 
    function(json) { 
     // success 
    } 
); 

и функцию getValue используется для отображения:

function getValue() { 
    return parseInt($(this).text()); 
} 
+0

Что такое first-child, nth-child (2) ... – Ognjen

+0

Позволяет вам получить 'nth' child' td' 'tr '. См. Документ: http://api.jquery.com/nth-child-selector/ –

Смежные вопросы