2016-07-20 6 views
0

私がしようとしているのは、ユーザーが入力しているレコードに関連して、最新のデータベースのレコード(オブジェクト)を取得することです。そのオブジェクトの特定のプロパティを取得し、それを単純な引き算条件文で使用します。Javascriptでデータベースレコードを取得する

はJavaScript:今

<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>に置き換えます。

また、JavaScriptでこれを取得するには、このコードを実行して返すサーバーアクションメソッドへのajax呼び出しを行う必要があります。

+0

コントローラまたはビューでこれを行っていますか? 'db'はどこから来たのですか? –

+0

更新された回答をご覧ください。 – Shyju

関連する問題