Как управлять назначением идентификатора скрытому полю для нескольких строк? - PullRequest
0 голосов
/ 22 октября 2018

У меня есть массив из более чем ста записей, которые я возвратил через Ajax-ответ из базы данных со значениями, такими как Id, Имя, Фамилия и Электронная почта.Я назначил последние три поля (Имя, Фамилия и Электронная почта) строкам таблицы данных в моем Razor View, каждое с кнопками действий в последнем столбце.Для простоты я хочу присвоить значение Id скрытому полю, чтобы можно было легко редактировать определенную строку с помощью определенного идентификатора этой строки.

Хотя у меня есть скрытое поле намой Razor View, мне интересно, как я должен назначить значение Id для этого скрытого поля для каждой записи?Мой код выглядит следующим образом:

var userTable;
$.ajax({
        url: serviceUrl + "/api/account/getallusers",
        type: "GET",
        crossDomain: true,
        contentType: "application/json",
        dataType: 'json',
        success: function (res) {
            var strHTML = "";

            for (var i = 0; i < res.length; i++) {

                strHTML += '<tr>';
                strHTML += '<td style="width: 20px !important;">';
                strHTML += res[i].FirstName;
                strHTML += '</td>';
                strHTML += '<td style="width: 30px !important;">';
                strHTML += res[i].LastName;
                strHTML += '</td>';
                strHTML += '<td style="width: 50px !important;">';
                strHTML += res[i].Email;
                strHTML += '</td>';
                strHTML += '<td>';

                //Code for action buttons goes here

                strHTML += '</td>';
                strHTML += '</tr>';
            }

            $('#dtusers tbody').html(strHTML);
                userTable = $("#dtusers").DataTable({
            });

    });

Есть ли простой, но эффективный способ присвоить значение Id скрытому полю, чтобы оно могло хорошо служить мне во время операции редактирования?

1 Ответ

0 голосов
/ 22 октября 2018

Если я правильно понял ваш вопрос, то вы могли бы сделать это, добавив переменную counter перед вашим циклом for.Затем вы можете добавить это к идентификатору вашего элемента TR в таблице.

Что-то вроде

strHTML += '<TR id=tableRow' + counter + '>';

Затем в конце цикла for увеличьте свой счетчик для следующей итерации.

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

Ваш код будет выглядеть примерно так

var userTable;
 $.ajax({
    url: serviceUrl + "/api/account/getallusers",
    type: "GET",
    crossDomain: true,
    contentType: "application/json",
    dataType: 'json',
    success: function (res) {
        var strHTML = "";
        var counter = 1;
        for (var i = 0; i < res.length; i++) {

            strHTML += '<tr id=tableRow' + counter + '>';
            strHTML += '<td style="width: 20px !important;">';
            strHTML += res[i].FirstName;
            strHTML += '</td>';
            strHTML += '<td style="width: 30px !important;">';
            strHTML += res[i].LastName;
            strHTML += '</td>';
            strHTML += '<td style="width: 50px !important;">';
            strHTML += res[i].Email;
            strHTML += '</td>';
            strHTML += '<td>';

            //Code for action buttons goes here

            strHTML += '</td>';
            strHTML += '</tr>';
            counter++; //increment the counter for next iteration
        }

        $('#dtusers tbody').html(strHTML);
            userTable = $("#dtusers").DataTable({
        });

});
...