Получить данные из проверенных строк в iggrid с помощью флажков

В настоящее время у меня есть сетка, которая хранит данные выбранной строки в массиве при нажатии. Этот метод работает отлично, но я пытаюсь изменить его, чтобы я мог выбрать несколько строк с флажком и иметь возможность хранить все эти даты в моем массиве. По сути, вместо того, чтобы добавлять по одной строке за раз в моем массиве, я хочу иметь возможность добавлять несколько строк, отмеченных в нем. Я не знаю, следите ли вы за мной, ребята, но, пожалуйста, изучите мой код, чтобы мы могли найти способ сделать это.

Вот,

Javascript:

$('#GridBindContact').on('iggridselectionactiverowchanged', function (event, args) {
  $("#PrimaryKey").val(args.row.element[0].cells[1].textContent);
  $("#ContactToBind_Numcon").val(args.row.element[0].cells[1].textContent);
  $("#ContactToBind_FullName").val(args.row.element[0].cells[2].textContent + ' ' +     args.row.element[0].cells[3].textContent);
  $("#ContactToBind_Titcon").val(args.row.element[0].cells[4].textContent);
  $("#ContactToBind_Tel1con").val(args.row.element[0].cells[5].textContent);
  $("#ContactToBind_Tel2con").val(args.row.element[0].cells[6].textContent);
  $("#ContactToBind_Emailcon").val(args.row.element[0].cells[7].textContent);
  $("#ContactToBind_NumEmployees").val(args.row.element[0].cells[8].textContent);
  $("#ContactToBind_NameEmployees").val(args.row.element[0].cells[9].textContent);
  $("#ContactToBind_Added").val(true);
  $(".ui-button-text").trigger("click");
});

По-моему:

@(Html.Infragistics.Grid(Of Contact)(Model.Results).ID("GridBindContact").
    AutoGenerateColumns(False).
    Width("100%").
    Height("400px").
    ResponseDataKey("Results").
    Columns(Sub(column)
            column.For(Function(e) e.Numcon).Template("${Numcon}").HeaderText("Num")
            column.For(Function(e) e.Pnmcon).Template("${Pnmcon}").HeaderText("Pnm").Width("10%")
            column.For(Function(e) e.Namemcon).Template("${Namecon}").HeaderText("Name").Width("15%")
            column.For(Function(e) e.Titcon).Template("${Titcon}").HeaderText("Title").Width("20%")
            column.For(Function(e) e.Tel1con).Template("${Tel1con}").HeaderText("Tel1")
            column.For(Function(e) e.Tel2con).Template("${Tel2con}").HeaderText("Tel2")
            column.For(Function(e) e.Emailcon).Template("${Emailcon}").HeaderText("Email")
            column.For(Function(e) e.NumEmployees).HeaderText("Num Emp")
            column.For(Function(e) e.NameEmployees).HeaderText("Name Emp")
            End Sub).
    Features(Sub(features)
             features.Sorting().Type(OpType.Local)
             features.RowSelectors.EnableCheckBoxes(True).RowSelectorsColumnWidth("50px").EnableRowNumbering(False)
             features.Selection().Mode(SelectionMode.Row).MultipleSelection(True).AddClientEvent("activeRowChanging", "activeRowChanging")
             features.Updating().EditMode(GridEditMode.None).EnableAddRow(False).EnableDeleteRow(False)
             End Sub).Render())

<form action="#" id="ajaxForm" method="post">
    @Html.HiddenFor(Function(x) x.PrimaryKey)
    @Html.HiddenFor(Function(x) x.ContactToBind.Numcon)
    @Html.HiddenFor(Function(x) x.ContactToBind.FullName)
    @Html.HiddenFor(Function(x) x.ContactToBind.Titcon)
    @Html.HiddenFor(Function(x) x.ContactToBind.Tel1con)
    @Html.HiddenFor(Function(x) x.ContactToBind.Tel2con)
    @Html.HiddenFor(Function(x) x.ContactToBind.Emailcon)
    @Html.HiddenFor(Function(x) x.ContactToBind.NumEmployees)
    @Html.HiddenFor(Function(x) x.ContactToBind.NameEmployees)
</form>

Я уже добавил возможность иметь флажки в своей сетке, но мне пока нечего с ними обрабатывать!

////////////////////////////////////////////////// /////////////////////////////////////////

Небольшое редактирование, чтобы я мог прояснить некоторые вещи

Позвольте мне немного подробнее рассказать о том, что я хочу делать в точности. Я хочу иметь возможность добавлять данные из всех строк, которые проверяются в массиве строк в виде пакета. Тем не менее, скажем, я проверил три ряда. Когда я нажимаю кнопку "ОК", она должна хранить информацию из всех трех строк в моем массиве.

Если все успешно, мой массив должен иметь три "элемента". Например, массив [0] будет содержать данные из первой строки, которая проверяется. Это позволило бы мне получить доступ к каждой ячейке и сохранить "textContent" из них в "ContactToBind", который я сейчас использую для хранения информации о каждой ячейке.

Я надеюсь, что это немного прояснит!

Большое спасибо за вашу помощь.

Гийом

1 ответ

Ты можешь использовать .igGrid( "allRows" ); чтобы получить все строки в вашей таблице, сохраните ее в переменной с именем "myRows", Затем напишите код JavaScript, чтобы пройти через "myRows" ты получил от .igGrid( "allRows" ) и проверьте значение поля со списком каждой строки. Если текущая строка имеет свой флажок "флажок", поместите эту текущую строку в ваш массив. в конце цикла у вас будут все строки в вашем массиве, которые были проверены.

Если вы не знаете, как пройти через "allRows" который вы сохранили в "myRows" переменная, использовать console.log(myRows) и проверьте структуру объекта в окне консоли вашего браузера. Вы сможете увидеть, как добраться до столбцов флажка. Это будет примерно так, но я не уверен, пожалуйста, проверьте себя с помощью console.log:

for(var i = 0 ; i < myRows.length ; i ++ )
{
myRows[i].cells....(select the checked combobox)
if yes then store myRows[i] in your array;
}
Другие вопросы по тегам