在我的MVC5 web应用程序中,我使用GridMVC在我的一个网格列中显示一个按钮(样式化超链接)作为资产验证按钮。基本上,单击该按钮时,它会根据其ID来搜索DB,并将[verified_date]
设置为DateTime.Now
。下面是我的脚本一起有问题的列来更新相应的记录verification_date
值的代码:MVC视图加载时,根据[日期]值设置变量类?
@Html.Grid(Model).Columns(columns =>
{
// Other Columns
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => @<a href="#" class="btn btn-default btn-sm noDecoration" onclick="verifyAsset(@o.Id)"><span class="glyphicon glyphicon-ok"></span> @*View*@</a>).SetWidth(15);
// Other Columns
}).WithPaging(10).Sortable().Filterable().WithMultipleFilters();
SCRIPT:
<script type="text/javascript">
function verifyAsset(assetID) {
var data = { asset_ID: assetID };
$.ajax({
type: "POST",
dataType: "JSON",
url: '@Url.Action("verifyAsset", "INV_Assets")',
data: data,
success: function (resp) {
alert("Success! Asset " + resp.ID + " successfully verified on " + resp.VDate);
location.reload(true);
},
error: function (resp) {
alert("There was an error verifying this Asset...");
}
});
}
</script>
我想什么就做的视图(加载过程中)为:根据呈现为(例如2/24/2015 1:37:51 PM
)的每个记录[verified_date]
字段的日期值设置类(上面的[btn-default]
)。如果[verified_date]
的值比当前日期早3个月,我希望按钮(样式超链接)具有btn-default
类,否则btn-success
类。
然后,当我点击验证按钮后,我还想更新[verification_date]
值后,将该特定记录的验证按钮的类别从btn-default
更改为btn-success
。
有没有人有如何去做这个想法?
编辑:
试图Jason的想法,我在与获取个人[verified_date]
值与截止比较的问题。这是我目前有(中评结果):
$(document).ready(function() {
var cutoff = threeMonthsBack();
$(".verifyBtn").each(function (index) {
var date = new Date($(this).data("verified_date"));
alert("Date: " + date + " || Cutoff: " + cutoff);
// Date: Invalid Date || Cutoff: Tue Nov 25 2014 08:42:54 GMT-0600 (Central Standard Time)
if (date < cutoff) {
$(this).removeClass("btn-success").addClass("btn-default");
}
else {
$(this).removeClass("btn-default").addClass("btn-success");
}
});
$("a.btn-default").on("click", function (e) {
e.preventDefault();
$(this).removeClass("btn-default").addClass("btn-success");
});
function threeMonthsBack() {
var _date = new Date();
_date.setMonth(_date.getMonth() - 3);
return _date;
}
});
}
</script>
,我需要做的是设置date
变量是[verified_date]
我的每个网格的记录,然后比较它是大于或小于3几个月从今天的当前日期。
我创建了一个我的记录,其中有一个[verified_date]
/11/24/2014。这是呈现HTML:
<td class="grid-cell" data-name>
<a href="#" class="btn btn-sm noDecoration verifyBtn btn-success" onclick="verifyAsset(8)">
<span class="glyphicon glyphicon-ok">...</span>
</a>
</td>
我如何设置date
变量包含在我的每一行的[verified_date]
值:
<td class="grid-cell" data-name="verified_date">11/24/2014 12:00:00 PM</td>
这是对HTML verifyBtn
同一记录的?如果我的理解有些不正确,我的脚本中的date
var的上述代码当前正在寻求一个data
的值为verified_date
,但verifyBtn
本身没有此属性?
代替“一”选择我添加了一个类.verifyBtn'的'的按钮(超链接)的。你有没有一种实际的方法来比较'[verified_date]'值中的'threeMonthsBack()'? – 2015-02-24 22:12:18
获取当前的日期,从时代开始为毫秒。然后为截止日期减去3个月的毫秒数。或者你可以采取[这个答案](http://stackoverflow.com/questions/7937233/how-do-i-calculate-the-date-in-javascript-three-months-prior-to-今天)。 – Jasen 2015-02-24 22:32:40
经过一些测试后,我意识到在设置比较中使用的'date'变量的值时存在问题。请参阅上面的编辑。 – 2015-02-25 14:58:13