Как ограничить записи IEnumerable <SelectListItem> - PullRequest
0 голосов
/ 16 июня 2020

Я использую IEnumerable для динамического c списка. Я пытаюсь ограничить количество отображаемых записей, как максимум 5 записей. Есть идеи, как это сделать?

1 Ответ

1 голос
/ 17 июня 2020

Как сказано в комментарии, .Take () - хороший выбор для вашего требования.

Я создал пример на основе IEnumerable<SelectListItem> с .Take() , вы можете сослаться на это:

int recordCount = 5;
IEnumerable<SelectListItem> data= _context.TableName.OrderBy(x => x.ID)
                                  .Select(x => new SelectListItem { Text = x.Name, Value = x.ID.ToString() })
                                  .Take(recordCount).ToList();

После отладки данные будут представлять первые пять частей данных отсортированных по идентификатору в виде IEnumerable<SelectListItem>.

Обновление

public IActionResult Index()
        {
            var allData = _context.TableC.OrderBy(x => x.ID).ToList();

            int recordCount = 5;
            IEnumerable<SelectListItem> data = _context.TableC.OrderBy(x => x.ID).Select(x => new SelectListItem { Text = x.Name, Value = x.ID.ToString() }).Take(recordCount).ToList();

            ViewBag.DropDownData2 = data;
            return View(allData);
        }

Просмотр:

@model IEnumerable<WebApplication_core_mvc.Models.TableC>
@{
    ViewData["Title"] = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h1>Index</h1>

<h3>All data:</h3>
<table class="table table-bordered">
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Stauts</th>
    </tr>
    @foreach (var item in Model)
    {
        <tr>
            <td>@item.ID</td>
            <td>@item.Name</td>
            <th>@item.Status</th>
        </tr>
    }
</table>


<h3>DropDownList1:</h3>
@Html.DropDownList("TableC",
                      Model.Select(x => new SelectListItem { Text = x.Name, Value = x.ID.ToString() }).Take(5).ToList(),
                    "Select Data",
                    new { @class = "form-control" })

<h3>DropDownList2:</h3>
@Html.DropDownList("TableC",
                     (IEnumerable<SelectListItem>)ViewBag.DropDownData2,
                    "Select Data",
                    new { @class = "form-control" })

Вот новый результат:

введите описание изображения здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...