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>
question from:
https://stackoverflow.com/questions/65837691/blazor-how-to-pass-a-value-held-in-a-variable-as-a-parameter-that-is-evaluated 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…