Могу ли я получить помощь, чтобы заполнить SelectList группами опций с помощью Ajax?
Я правильно закодировал добавление элементов, но не уверен, как добавить группы параметров.
Вот мой код Ajax, который работает:
var category = $(this).val();
$.ajax({
type: "POST",
async: true,
url: '/TestController/Test',
data: {
'category': category
},
dataType: "json",
error: function () {
},
success: function (data) {
$("#fileId").empty();
$.each(data, function () {
$("#fileId").append($("<option />").val(this.Value).text(this.Text));
});
}
});
Вот вызываемая функция:
public async Task<string> Test(string category)
{
var items = new List<SelectListItem>();
items.Add(new SelectListItem() { Value = "1", Text = "Item 1" });
items.Add(new SelectListItem() { Value = "2", Text = "Item 2" });
items.Add(new SelectListItem() { Value = "3", Text = "Item 3" });
return new JavaScriptSerializer().Serialize(items);
}
Теперь я хотел бы добавить группы параметров в список выбора.
Вот моя новая вызываемая функция с группами опций:
public async Task<string> Test(string category)
{
var Group1 = new SelectListGroup() { Name = "Group 1" };
var Group2 = new SelectListGroup() { Name = "Group 2" };
var items = new List<SelectListItem>();
items.Add(new SelectListItem() { Value = "1", Text = "Item 1", Group = Group1 });
items.Add(new SelectListItem() { Value = "2", Text = "Item 2", Group = Group2 });
items.Add(new SelectListItem() { Value = "3", Text = "Item 3", Group = Group2 });
return new JavaScriptSerializer().Serialize(items);
}
Как я могу заполнить SelectList так же, как в первом примере, но с помощью групп опций?
Заранее спасибо.
ИЗМЕНИТЬ
Мне нужно, чтобы элементы группы имели отступ, как на следующем изображении (игнорируйте имена элементов и групп):
Это правильный HTML-код, который необходимо вывести:
<optgroup label="Public">
<option value="1">Green - test.png</option>
<option value="3">Yellow - test.png</option>
</optgroup>
<optgroup label="User">
<option value="5">Yellow534x300.png</option>
</optgroup>
</select>
@Rory McCrossan: ваш код выводит следующее:
<optgroup label="Group 1"></optgroup><option value="1">Item 1</option><optgroup label="Group 2"></optgroup><option value="2">Item 2</option><option value="3">Item 3</option></select>