我有一个由一百多个记录组成的数组,这些记录是我通过Ajax响应从数据库返回的,它们的值是Id,First Name,Last Name和Email。我已经将最后三个字段(名字,姓氏和电子邮件)分配给了Razor View中的数据表行,每个字段都具有最后一列中的操作按钮。为了简单起见,我想将Id值分配给隐藏字段,以便我可以借助该行的特定ID轻松地编辑特定行。
尽管我在Razor视图上有一个隐藏字段,但我想知道如何为每个记录将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值分配给隐藏字段,以便在编辑操作期间可以很好地为我服务?
答案 0 :(得分:1)
如果我正确理解了您的问题,则可以通过在for循环之前添加一个计数器变量来实现。然后,您可以将其添加到表中TR元素的ID中。
类似
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({
});
});