I am trying to create a list of items in the browser that can be removed from the dictionary if the associated button is clicked. with @onclick="@(() => Delete(index))", I always get the last index + 1 because its value is determined during the click event and not during rendering. Is there another way of writing this function to force the evaluation to the time of rendering?
<table class="table table-bordered">
@ResetIndex()
@for (int i = 0; i < numRows; i++)
{
<tr>
@for (int j = 0; j < numCols; j++)
{
@GetIndex()
@if (meData.SeeNext() == "")
{
<td />
}
else
{
@if (meData.IsLast())
{
<td class="text-success">
<button class="btn btn-small button-cancel border border-success"@onclick="@(() => Delete(index))">
<span class="text-success">@meData.Next()</span>
<span aria-hidden="true">×</span>
</button>
</td>
}
else
{
<td class="text-primary">
<button class="btn btn-small button-cancel border border-primary" @onclick="@(() => Delete(index))">
<span class="text-primary">@meData.Next()</span>
<span aria-hidden="true">×</span>
</button>
</td>
}
}
}
</tr>
}
</table>