У меня есть всплывающее модальное окно (частично), которое мне нужно для отображения содержимого словаря в таблице сетки. В настоящее время он работает нормально, но только если словарь возвращается с одной парой {ключ, val}. Я не могу заставить его работать более чем на одну пару ключ / вал. Если их несколько, они объединяют их все в один столбец. Мне также нужна функция для удаления предыдущих значений при повторном открытии модального окна. Он прекрасно справляется с этой частью, но я думаю, что Jquery манипуляции по их добавлению и удалению могут препятствовать моей попытке добавить значения.
Для пояснения, это работает с возвращенным словарем, который имеет один {ключ, value}, но мне нужно, чтобы он работал с более чем одним, не объединяя их вместе. Например, если возвращено:
{valName1, val1}
{valName2, val2}
{valName3, val3}
Ниже мой модал и Jquery, который я использую:
<div class="modal fade" id="paramsModal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header modal-header-primary">
<a class="btn btn-xs btn-primary pull-right" data-dismiss="modal" aria-label="Close"><span class="glyphicon glyphicon-remove"></span></a>
<h4 class="modal-title" id="modalTitleText">Job Parameters</h4>
</div>
<div class="modal-body">
<div class="list-group">
<div class="row list-group-item list-group-item-heading container divTableHeading" style="width:inherit; margin-bottom:0px;" id="modalGridHeader">
<div class="col-md-6 font-weight-bold"> Parameter: </div>
<div class="col-md-6 font-weight-bold"> Value: </div>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
<script>
$("button[name='paramsBtn']").click(function () {
/* Grabs ID from col selected */
var $col = $(this).closest('.row').find('.requestId');
var jobRequestId = $col.data('id');
var nameType = $col.data('name');
$.ajax({
url: '@Url.Action("JobPollerParameters", "Tools")',
data: { "jobRequestId": jobRequestId, "name" : nameType},
success: function (results) {
$modal = $('#paramsModal');
$modal.modal("show");
var name = "";
var value = "";
var arr = results;
//loop through arr created from dictionary to grab key(s) and value(s)
for (var key in arr) {
if (arr.hasOwnProperty(key)) {
name += key;
value += results[key];
//Remove previous rows
$("div[name='params']").remove();
//Adding parameters as rows
$('<div class="col-md-6 text-break" name="params"> ' + name + '</div>' + '<div class="col-md-6 text-break" name="params">' + value + '</div>').insertAfter($('#modalGridHeader'));
}
}
}
});
});
</script>
Вот скриншот модального всплывающего окна. На этом снимке экрана был возвращен словарь с 3 парами ключ / вал, однако видно, что все они объединены вместе.