2010-05-20 3 views
3

에 데이터 테이블을 게시와 문제 및 테이블에 넣어 (ID = "OrderDevices")초급 내가 JsonResult (GetDevicesTable)에서 데이터를 얻을이 스크립트 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> 
<% } %> 

클릭 에 제출하십시오 나는 아래와 같은 것을 필요로합니다 :

$(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) 
{ 
    ... 
} 

을 지금

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 기능 : 당신은 당신이 AJAX 쿼리를 보낼 수있는 곳이 있습니다

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

첫 번째 자식, n 번째 자식 (2)은 무엇입니까 ... – Ognjen

+0

'tr'의 'nth' 자식'td'를 가져올 수 있습니다 '. doc : http://api.jquery.com/nth-child-selector/를 참조하십시오. –

관련 문제