I am looking to display some records in table by retrieving from SharePoint list. I used it as @HtmlBeginForm for submitting purpose. In my case there are three buttons,
Prev - to preview previous dates records
next - to preview next dates records
Submit - to update share-point list (after changed table value)
when page loading It load data to table from today to last 7 days.
In my case though records retrieved correctly, table will not show updated values. It shows value which had by default loading.
My Table-:
@using (Html.BeginForm())
{
<table border="1" class="table timetrack-tb">
<tr>
<th>Projects</th>
@for (var date = @Model.Dates.AddDays(-(@Model.DateRange - 1)); date <= @Model.Dates; date = date.AddDays(1))
{
<th>@date.Day/@date.Month/@date.Year</th>
}
<th>Total</th>
</tr>
@{ double[] totalForDay = new double[@Model.DateRange+1];
double[] total = new double[@Model.TimeTrakings.Count];}
@for (int i = 0; i < @Model.TimeTrakings.Count; i++)
{
var projectName = @Model.TimeTrakings[i][0].ProjectName;
int index = 0;
<tr>
<td>
@Model.TimeTrakings[i][0].ProjectName
</td>
@for (int j = 0; j <= Model.TimeTrakings[i].Count(); j++)
{
if (j != Model.TimeTrakings[i].Count())
{
totalForDay[index] = totalForDay[index] + @Model.TimeTrakings[i][j].Hours;
total[i] = total[i] + @Model.TimeTrakings[i][j].Hours;
<td>
@Html.EditorFor(model => @Model.TimeTrakings[i][j].Hours)
@Html.HiddenFor(x => x.TimeTrakings[i][j].Id)
@Html.HiddenFor(x => x.DateRange)
@Html.HiddenFor(x => x.TimeTrakings[i][j].ProjectName)
@Html.HiddenFor(x => x.TimeTrakings[i][j].ProjectCode)
@Html.HiddenFor(x => x.TimeTrakings[i][j].Date)
</td>
index++;
}
else
{
totalForDay[index] = totalForDay[index] + total[i];
index++;
}
}
<td>@total[i]</td>
</tr>
}
<tr>
<td>Total for day</td>
@foreach (var tot in totalForDay)
{
<td>@tot</td>
}
</tr>
</table>
<input type="submit" name="prevBtn" value="Prev" />
<input type="submit" name="NextBtn" value="Next" />
<input type="submit" name="SubmitBtn" value="Submit"/>
}
My Controller method:
public ActionResult Index(TimeTracking timeTracking)
{
DateTime today = DateTime.Today;
int lengthOfTable = timeTracking.DateRange;
if (Request.Form["SubmitBtn"] != null)
{
timeTrackManager.UpdateTimeTrackingList(timeTracking);
today = DateTime.Today;
lengthOfTable = timeTracking.DateRange;
}
else if (Request.Form["prevBtn"] != null)
{
today = timeTracking.TimeTrakings[0][0].Date.AddDays(-1);
lengthOfTable = timeTracking.DateRange;
}
else if (Request.Form["NextBtn"] != null)
{
today = timeTracking.TimeTrakings[0][0].Date.AddDays(timeTracking.DateRange);
lengthOfTable = timeTracking.DateRange;
}
return View(this.ReceiveTimeTrackingData(today, lengthOfTable));
}
>` is going to cause you problems as I noted in your [last question](http://stackoverflow.com/questions/36005258/pass-table-values-from-view-to-controller-mvc)!
– Mar 18 '16 at 06:06