В настоящее время я внедряю разбиение на таблицы с помощью собственного решения в Blazor и сталкиваюсь с некоторыми трудностями.Неприятный фрагмент кода приведен ниже (это для рендеринга кнопок подкачки под сеткой):
@for (int i = 0; i < vm.TotalPages; i++)
{
<button id="pg-button-@i" class="btn btn-primary btn-sm" type="button" onclick="@(() => GetTablePage(i))">@i</button>
}
Обратите внимание, что в событии onclick я вызываю функцию и передаю i
, счетчик длятекущее взаимодействие цикла.
Метод GetTablePage
выглядит следующим образом:
protected async Task GetTablePage(int page)
{
Console.WriteLine("page number: " + page);
}
Моя проблема в том, что КАЖДАЯ кнопка будет вызывать эту функцию с i
, установленным как длинаvm.TotalPages
.
Вот пример, чтобы попытаться прояснить это:
Просмотр разметки (обратите внимание, что id
каждой кнопки настроен соответствующим образом):
<button id="pg-button-0" class="btn btn-primary btn-sm" type="button">0</button>
<button id="pg-button-1" class="btn btn-primary btn-sm" type="button">1</button>
<button id="pg-button-2" class="btn btn-primary btn-sm" type="button">2</button>
<button id="pg-button-3" class="btn btn-primary btn-sm" type="button">3</button>
<button id="pg-button-4" class="btn btn-primary btn-sm" type="button">4</button>
<button id="pg-button-5" class="btn btn-primary btn-sm" type="button">5</button>
<button id="pg-button-6" class="btn btn-primary btn-sm" type="button">6</button>
После нажатия ЛЮБОЙ из этих кнопок моя функция GetTablePage
записывает 7
в консоль, которая является длиной коллекции vm.TotalPages
.
Почему это происходит и как я могу ее преодолеть