|
Op e-commerce websites wordt de voortgangsbalk soms gebruikt om visueel weer te geven of een gebruiker klaar is en de huidige status van de gebruiker.
Ontwerp zo'n model.
- public class User
- {
- public int Id { get; set; }
- public string Name { get; set; }
- public int CoopTime { get; set; }
- public DateTime JoinTime { get; set; }
- }
Code kopiërenBovenstaande is het coöperatieduur-attribuut CoopTime en het jointime-attribuut JoinTime zijn twee attributen die nauw verbonden zijn met voortgang.
In HomeController wordt een actiemethode gebruikt om de interface weer te geven, en een actiemethode om GET-verzoeken van de view te ontvangen en json-gegevens terug te geven. - public ActionResult Index()
- {
- return View();
- }
- public ActionResult GetStatus()
- {
- User user = new User()
- {
- Id = 1,
- Name = "某某用户",
- CoopTime = 1,
- JoinTime = new DateTime(2014, 3, 20)
- };
- //判断合作是否已经到期
- int result = DateTime.Compare(DateTime.Now, user.JoinTime.AddYears(user.CoopTime));
- if (result <= 0) //当前时间比合作到期时间早,合作未到期
- {
- //计算时间
- var pastDays = (DateTime.Now.Subtract(user.JoinTime)).TotalDays;
- var oneYearDays = (user.JoinTime.AddYears(user.CoopTime).Subtract(user.JoinTime)).TotalDays;
- var pastPercentage = (pastDays / oneYearDays) * 100;
- var dataSuccess = new { msg = true, p = pastPercentage };
- return Json(dataSuccess, JsonRequestBehavior.AllowGet);
- }
- else //当前时间比合作到期时间晚,合作已到期
- {
- var dataFail = new { msg = false, p = 100 };
- return Json(dataFail, JsonRequestBehavior.AllowGet);
- }
- }
- }
Code kopiërenBoven, ● Gebruik de statische methode DateTime Compare om 2 keer te vergelijken: één is de huidige tijd, de andere de jointijd + samenwerkingsduur; als het resultaat kleiner is dan of gelijk aan 0, betekent dit dat er geen vervaldatum is. ● Gebruik de statische methode DateTime, Subtract, om 2 keer af te trekken.
Home/Index.cshtml, wanneer de pagina geladen is, stuur een asynchrone GET-aanvraag naar de server om de teruggegeven gegevens in de voortgangsbalk weer te geven. - <head>
- <meta name="viewport" content="width=device-width" />
- <title>Index</title>
- <link href="~/Content/themes/base/jquery-ui.css" rel="stylesheet" />
- <scrip{过滤}t src="~/scrip{过滤}ts/jquery-1.8.2.min.js"></scrip{过滤}t>
- <scrip{过滤}t src="~/scrip{过滤}ts/jquery-ui-1.8.24.min.js"></scrip{过滤}t>
- <scrip{过滤}t type="text/javascrip{过滤}t">
- $(function () {
-
- $.getJSON('@Url.Action("GetStatus","Home")', function(data) {
- if (data.msg == true) {
- var temp = parseInt(data.p);
- $('#p').progressbar({
- value: temp
- });
- } else {
- $('#message').text('已到期');
- $('#p').progressbar({
- value: parseInt(data.p)
- });
- }
- });
- });
- </scrip{过滤}t>
- </head>
- <body>
- <div id="p">
- </div>
- <div>
- <span id="message"></span>
- </div>
- </body>
Code kopiëren
|