Имеется шапка таблицы с пустым телом
<table id="tablem" border="1" width="100">
<thead>
<tr>
<th style="width: 10%">PageName</th>
<th style="width: 5%">Lang</th>
<th style="width: 10%">ControlName</th>
<th style="width: 70%">ControlValue</th>
<th style="width: 5%">Edit</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
Тело заполняется посредством AJAX-запроса, где из базы получатся данные и строится таблица:
function ForSearching(args, callback) {
$.ajax({
url: "/source_pages/SearchForMultilang.ashx",
type: "POST",
dataType: "json",
data: args,
}).success(function(data) {
var table = $("#tablem tbody");
$("#tablem tbody").empty();
callback(data);
$.each(data, function (idx, elem) {
table.append('<tr><td>' + elem.PageName + '</td><td>' + elem.Lang + '</td><td>' + elem.ControlName + '</td><td>' + elem.ControlValue + '</td><td><input type="button" id="btnedt" value="Edit" /></td></tr>');
});
});
}
Таблица создается, заполняется, в последнем столбце создается кнопка Edit.
Как при нажатии этой кнопки сделать так, чтобы ячейки в строке, где расположена нажатая кнопка, стали <input type='text'>
со значениями в них из этих ячеек, с возможностью редактирования и затем сохранения и отображения изменений?
...
$.each(data, function (idx, elem) {
table.append('<tr><td data-field="PageName">' + elem.PageName +
'</td><td data-field="Lang">' + elem.Lang +
'</td><td data-field="ControlName">' + elem.ControlName +
'</td><td data-field="ControlValue">' + elem.ControlValue +
'</td><td><input type="button" class="btnedt" value="Edit" /></td></tr>');
});
...
function RowToEditMode(aRow) {
// ...
}
function RowCancelEdit(aRow) {
// ...
}
function RowSaveEdit(aRow) {
// ...
}
$("#tablem tbody").on("click", ".btnedt", function(e) {
var $row = $(this).closest("tr");
if ($row.hasClass("editmode"))
{
// save values from inputs in this row
// ...
$row.removeClass("editmode");
} else {
// 1. if there is a row in edit mode revert it to view mode
// ...
// 2. insert inputs with current values from cells in each cell,
// store old values in td data-oldvalue
// ...
}
});
Пока все понятно?
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Я заметил одну странную особенность Даже страницу для демонстрации сделалЕсли открыть панель инструменты разработчика (F12) и вызвать показ...
Как в gulp работать с несколькими html файлами, чтобы автообновление работало на всех этих файлах? (browsersync подключен)