У меня есть сайт MVC с разбивкой на страницы индекса. Я правильно установил флажок для каждой строки в моей таблице, но если пользователь выбирает элемент на странице 1, затем переходит на страницу 2 и обратно на страницу 1, этот элемент больше не проверяется.
Из-за использования моих флажков, когда пользователь щелкает один, значение передается в функцию сценария java, которая сохраняет значение в массиве. Таким образом, хотя флажок больше не выбран явно для просмотра пользователем, у меня есть выбранные значения, хранящиеся в массиве.
Я хочу включить оператор if при отображении моих флажков. Если значение этого флажка хранится в массиве, который у меня есть в javascript, отобразите установленный флажок. Если это не так, отобразите снятый флажок. Я не могу понять, как вызвать функцию сценария java с параметром значения из оператора if.
Вот мой IndexView html:
@foreach (var item in Model)
{
<tr>
<td>
<input type="checkbox" id="checkBoxAll" name="recordId" value="@item.pkTestRecord" onclick="addValue(this.value)" />
<a href="~/TestRecord/DetailsDummy/@item.pkTestRecord" data-url="@Url.Action("DetailsDummy", "TestRecord", new { id = item.pkTestRecord })">@item.nkFileName</a>
</td>
....
И мой java script:
<script type="text/javascript">
var list = "";
var selectedCount = 0;
var selectedCheck = [];
var s = 25;
function addCount() {
selectedCount++;
document.getElementById("selectCount").innerHTML = ("(Selected: ") + selectedCount + ")"
}
function deleteCount() {
selectedCount--;
if (selectedCount > 0) {
document.getElementById("selectCount").innerHTML = (" (Selected: ") + selectedCount + ")"
}
}
function addValue(val) {
var check = selectedCheck.indexOf(val);
if (check == -1) {
addCount();
selectedCheck.push(val);
}
else {
deleteCount();
for (var i = 0; i < selectedCheck.length; i++) {
if (selectedCheck[i] == val) {
selectedCheck.splice(i, 1);
i--;
}
}
}
}
</script>
Лог c за моим кодом:
Когда пользователь щелкает флажок, addValue (item) java script функция вызывается.
Эта функция проверяет массив, в котором я храню отмеченные элементы. Если элементы уже находятся в массиве, это означает, что пользователь снимает щелчок с элемента, поэтому его необходимо удалить.
В противном случае добавьте элемент, выбранный пользователем, в массив
Я предполагаю добавить примерно следующее:
@foreach (var item in Model)
{
<tr>
<td>
@if( #call java scipt, pass item value, and check if array contains this item)
{
input type="checkbox" id="checkBoxAll" name="recordId" value="@item.pkTestRecord" onclick="addValue(this.value)" checked />
}
else{
input type="checkbox" id="checkBoxAll" name="recordId" value="@item.pkTestRecord" onclick="addValue(this.value)" />
}
<
<a href="~/TestRecord/DetailsDummy/@item.pkTestRecord" data-url="@Url.Action("DetailsDummy", "TestRecord", new { id = item.pkTestRecord })">@item.nkFileName</a>
</td>