Получение из списка ключа и значения для помещения значений по умолчанию в Select2 4.0.3 - PullRequest
0 голосов
/ 24 января 2019

У меня есть список с идентификатором и значением, и я хочу, чтобы select2 принимал значения и отображал их при выборе страницы.

здесь мой select2 на данный момент

var matchingClause = $("#ExistedEntryList").val();
    $.each(matchingClause, function (key, value) {
        $('#tags').select2({
            data: { id: key, text: value },
            tags: true
        });
        $('#tags').val(data);
    });`

мой выбор

        <select multiple="multiple" class="form-control" id="tags" style="width: 400px;" value="@Model.EntryTagNames" name="tags[]">

и, наконец, вот мой контроллер, когда я помещаю данные в список

       //დოკუმენტის ტიპის და ქვეტიპების სახელების წამოღება.
        List<Select2ListItem> list = new List<Select2ListItem>();
        var entriesViewModel = new EntryViewModel();

        var entryTags = _tagService.GetTagsByEntryId(id);
        foreach (var tag in entryTags)
        {

            list.Add(new Select2ListItem
            {
                id = tag.Id.ToString(),
                text = tag.Name
            });
        }


    entriesViewModel.ExistedEntryList = list;
        return View(entriesViewModel);

Я хочу, чтобы значения этого списка отображались в select2 как теги, и когдая публикую там, чтобы быть идентификаторы.какие-либо предложения?

1 Ответ

0 голосов
/ 24 января 2019
  • select2 работа с визуализацией <select> .. Это означает, что вы можете создать структуру по умолчанию для <select>, а затем применить к ней плагин ..

Вот какэто можно сделать в js

var matchingClause = {
  key1 : "value1",
  key2 : "value2",
  key3 : "value3",
  key4 : "value4"
};
$.each(matchingClause, function (key, value) {
    $('select#tags').append('<option value="'+value+'">'+ value +'</option>');
});
$('#tags').select2({
    placeholder: 'Select a value'
});
<link href="https://rawgit.com/select2/select2/master/dist/css/select2.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://rawgit.com/select2/select2/master/dist/js/select2.js"></script>

<select multiple="multiple" class="form-control" id="tags" style="width: 400px;" name="tags[]"></select>

Примечание: Я не специалист по контроллеру, но если у вас есть способ добавить опции к <select> с контроллером(может быть, способ), а затем применить плагин

...