2016-07-20 2 views
0

내가하려는 것은 사용자가 입력하는 레코드와 관련하여 가장 최근의 데이터베이스에서 레코드 (개체)를 검색하는 것입니다. 그리고 그 객체의 특정 속성을 가져 와서 간단한 빼기 조건문에 사용하십시오.자바 스크립트를 통해 데이터베이스 레코드 검색

자바 스크립트 : 이제

<script type="text/javascript"> 
$('#DialogTime').dialog({ 
     autoOpen: false, 
     width: 600, 
     modal: true, 
     buttons: { 
      "Confirm": function() { 
       $("#DSCreateForm").submit(); 
      }, 
      "Cancel": function() { $(this).dialog("close"); } 
     } 
    }); 


    $('.btnSubmitDS').on("click", function (e) { 
     // this is where the conditional statement needs to be. 
     { 
      e.preventDefault(); 
      $(function() { 
       $('#DialogHighFlightTime').dialog('open') 
      }); 
     } 
    }); 
</script> 

, 거기에이 스크립트를 가지고있는보기, 한 형태입니다 ... 그리고 사용자 히트 제출하면, 그들은 단지 제출 레코드의 마지막 행이 될 것이다 테이블 .. 그래서 사용자가 방금 입력 한 행 위의 속성 값을 가져와야합니다.

나는 조건문을 작성하는 법을 알고 있습니다. 올바른 레코드를 검색하는 방법을 알아야합니다.

나는이 모든 잘못에 대해 갈 수도 있지만, 사용자가 방금 입력 한 레코드와 가장 가까운 레코드를 검색하는 다른 방법을 알지 못합니다.

도움을 주시면 감사하겠습니다.

답변

1

레코드와 연관된 시간 소인이있는 경우 결과를 내림차순으로 정렬하고 첫 번째 파일 (방금 삽입 한 파일)을 건너 뛰고 첫 번째 항목을 가져 오는 것이 좋습니다.

LINQ가 도움이 될 수 있습니다.

뭔가 특정 사용자에게이 제한하려면

var secondLastRecord = db.Issues.OrderByDescending(s=>s.CreatedTime).Skip(1).Take(1); 

처럼, 당신은 where 절과 다른 조건을 추가하는 것이 좋습니다.

var userIdToCheck=324; 
var secondLastRecord = db.Issues. 
         .Where(c=>c.CreatedById==userIdToCheck) 
         .OrderByDescending(s=>s.CreatedTime).Skip(1).Take(1); 

가정 할 때 db은 DbContext 개체입니다. 비 EF 데이터 액세스 계층을 사용하는 경우에도 LINQ OrderByDescending-Skip-Take 접근 방식을 사용할 수 있습니다. db.Issue을 테이블 데이터를 나타내는 IEnumerable<T>으로 바꿉니다.

또한 자바 스크립트에서 이것을 얻으려면이 코드를 실행하고 리턴 할 서버 조치 메소드에 대한 ajax 호출을 작성해야합니다.

+0

컨트롤러 또는보기에서이 작업을 수행하고 있습니까? 'db'는 어디에서 왔습니까? –

+0

업데이트 된 답변보기 – Shyju

관련 문제