我要做的是检索数据库中与用户输入的记录相关的最新记录(对象)。并获取该对象的特定属性并在简单的减法条件语句中使用它。
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>
现在,包含此脚本的视图是一个表单...一旦用户点击提交,他们刚刚提交的记录将成为表中的最后一行..所以我需要获取属性值从用户刚刚输入的那一行开始。
我知道如何编写条件语句..我只需要知道如何检索正确的记录。
我可能会说这一切都错了,但我不知道如何检索最接近用户刚进入的记录的记录。
感谢任何帮助。
答案 0 :(得分: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调用,您将执行此代码并将其返回。