After viewing the report , there is a back button in report view to go back to report criteria. But when I going back to criteria , how can refill all the criteria value same as before when I had selected to generate the report. At the moment when I coming back to criteria, all value would be initialized. Please can I ask you to help me with suggested code to bring the previously selected value in criteria view
Controller code
[HttpPost] public IActionResult AttendanceReportCriteria(ReportViewModel report) { List<SelectListItem> depo = new List<SelectListItem>(); List<SelectListItem> dept = new List<SelectListItem>(); dept = EmployeeService.GetUserDepartments(HttpContext.Session.GetInt32("UserID") ?? 0, connectionSettings); depo = EmployeeService.GetUserDepots(HttpContext.Session.GetInt32("UserID") ?? 0, connectionSettings); depo.RemoveAt(0); dept.RemoveAt(0); ViewBag.UserDepartments = dept; ViewBag.UserDepots = depo; List<SelectListItem> employees = new List<SelectListItem>(); for (int k = 0; k < report.Depot.Count; k++) { for (int l = 0; l < report.Department.Count; l++) { List<SelectListItem> emp = new List<SelectListItem>(); emp = EmployeeService.GetEmployeesForDepot(Convert.ToInt32(report.Depot[k]), Convert.ToInt32(report.Department[l]), connectionSettings); emp.RemoveAt(0); employees.AddRange(emp); } } ViewBag.Employees = employees; DateTime fromDate = new DateTime(); DateTime toDate = new DateTime(); if (report.FromDate != "" && report.ToDate != "" && report.FromDate != null && report.ToDate != null) { fromDate = DateTime.ParseExact(report.FromDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); toDate = DateTime.ParseExact(report.ToDate, "dd/MM/yyyy", CultureInfo.InvariantCulture); } else { fromDate = DateTime.ParseExact(DateTime.UtcNow.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture); toDate = DateTime.ParseExact(DateTime.UtcNow.ToShortDateString(), "dd/MM/yyyy", CultureInfo.InvariantCulture); } List<DepotModel> depotList = new List<DepotModel>(); List<EmployeeModel> employeeList = new List<EmployeeModel>(); List<AttendanceLogModel> log = new List<AttendanceLogModel>(); log = ReportService.GetEmployeeAttendanceReport(String.Join(",", report.Depot), String.Join(",", report.Department), String.Join(",", report.Employee), fromDate, toDate, connectionSettings); ViewBag.AttendanceLogs = log; return View("AttendanceReport", report); } [HttpPost] public IActionResult AttendanceReport() { return View("AttendanceReportCriteria"); }
Report criteria html
<div class="container-fluid shadow"><div class="row my-sticky-element" style="display: block;"><label class="control-label-left padding-left-twenty col-sm-6" for="field1">ATTENDANCE REPORT - Criteria </label></div><hr style="margin-top:unset" /><div class="row col-md-12 yellow_text @ViewBag.IsFilter" id="divFilters"><div class="row col-sm-12"><div class="row"><div class="col-sm-4"><div class="form-group"><label class="control-label control-label-left col-sm-4" for="field1">Date From</label><div class="controls col-sm-8"><div class='input-group date' id='FromDatePicker'><input type='text' asp-for="FromDate" class="form-control " /><span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span></div></div></div></div><div class="col-sm-4"><div class="form-group"><label class="control-label control-label-left col-sm-4" for="field2">Date To</label><div class="controls col-sm-8"><div class='input-group date' id='ToDatePicker'><input type='text' asp-for="ToDate" class="form-control" /><span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span></div></div></div></div></div></div><div class="row col-sm-12"><div class="row col-sm-8"><div class="form-group"><label class="control-label control-label-left col-sm-2" for="field2"> Depot</label><div class="controls col-sm-10" style="padding-right: 0px !important;"><select id="dropdownDepot" class="form-control" multiple asp-for="Depot" onchange="FillEmployeeDropdown()" asp-items="@ViewBag.UserDepots" data-role="select"></select></div></div></div><div class="col-sm-8 row"><div class="form-group"><label class="control-label control-label-left col-sm-2" for="field2"> Department</label><div class="controls col-sm-10" style="padding-right: 0px !important;"><select id="dropdownDepartment" multiple class="form-control" asp-for="Department" onchange="FillEmployeeDropdown()" asp-items="@ViewBag.UserDepartments" data-role="select"></select></div></div></div><div class="col-sm-8 row"><div class="form-group"><label class="control-label control-label-left col-sm-2"> Employee</label><div class="controls col-sm-10" style="padding-right: 0px !important;"><select id="dropdownEmployee" multiple class="form-control" asp-for="Employee" asp-items="@ViewBag.Employees" data-role="select"></select></div></div></div></div></div><div class="col-sm-3"><button type="submit" class="btn btn-primary form-control">Show</button></div>
report chtml file
<div class="container-fluid" id="AttendanceReport"><div class="row"><form asp-controller="Report" asp-action="AttendanceReport" data-ajax="true" data-ajax-method="POST" data-ajax-mode="replace" data-ajax-update="#content" class="form-horizontal" role="form" data-parsley-validate novalidate><div class="container-fluid shadow"><div class="row my-sticky-element" style="display: block;"><label class="control-label-left padding-left-twenty col-sm-6" for="field1">ATTENDANCE REPORT </label></div><hr style="margin-top:unset" /><div class="row col-sm-8 padding-top-ten" id="divActions"><div class="form-group"><div class="center-block"><div class="col-sm-2"></div><div class="col-sm-3"><button type="submit" class="btn btn-primary form-control" id="btnShow">Back</button></div></div></div></div></div><div><hr style="margin-top:unset" /></div><!--Report Content--><div> @if (@ViewBag.AttendanceLogs == null) {<div class="row col-sm-8 text-center yellow_text"><span>No records found</span></div> } else {<div class="table-responsive"><div class="col-sm-12 portlet light @ViewBag.IsReport" id="divReport"><table id="example" class="display text-nowrap" c cellspacing="0" style="width:100%"><thead><tr><th> Depot Name</th><th> Employee Name</th><th> Date</th><th> Clocked In</th><th> Clocked Out</th><th> N.Attendance</th></tr></thead><tbody> @foreach (AttendanceLogModel log in ViewBag.AttendanceLogs as List<AttendanceLogModel>) {<tr><td> @log.DepotName</td><td> @log.EmployeeName</td><td> @log.FromDate</td><td> @log.ClockedIn</td><td> @log.ClockedOut</td><td> @Convert.ToInt32(@log.IsNormalAttendance)</td></tr> } </tbody></table></div></div> } </div></form></div></div>
Please help would be very appreciated
With Thanks
Pol