Как использовать выпадающий список из модели в WebGrid MVC C# - PullRequest
0 голосов
/ 16 января 2020

Каков наилучший или самый простой способ реализовать выпадающий список с помощью веб-сетки?

@{
    WebGrid gridBenefits = new WebGrid(Model.Benefits, rowsPerPage: 4);
}

        <div class="row">
            @gridBenefits.GetHtml(
            tableStyle: "table table-responsive table-striped table-bordered",
            columns: gridBenefits.Columns(
                    gridBenefits.Column(header: "Description", format: @<text><div class="edit" data-id="@item.BenefitID" data-identity="Benefits" data-propertyname="BenefitDescription"> @item.BenefitDescription</div></text>),
                    gridBenefits.Column(header: "Progress", format:@<text><div class="edit" data-id="@item.BenefitID" data-identity="Benefits" data-propertyname="Progress"> @item.ProgressID</div></text>)

                    )
                    )
        </div>

Моя модель ниже для выпадающего столбца прогресса:

public class Progress
{
    public int ProgressID { get; set; }
    public string Status { get; set; }
}

Я бы нравится отображать «Статус» для каждого ProgressID в выпадающем столбце. На данный момент он отображает ProgressID в настоящее время, как я могу адаптировать код, чтобы вместо этого иметь выпадающий список?

1 Ответ

0 голосов
/ 16 января 2020

Я не проверял это, но мои мысли примерно такие:

@{
    WebGrid gridBenefits = new WebGrid(Model.Benefits, rowsPerPage: 4);
}

        <div class="row">
            @gridBenefits.GetHtml(
            tableStyle: "table table-responsive table-striped table-bordered",
            columns: gridBenefits.Columns(
                    gridBenefits.Column(header: "Description", format: @<text><div class="edit" data-id="@item.BenefitID" data-identity="Benefits" data-propertyname="BenefitDescription"> @item.BenefitDescription</div></text>),
                    gridBenefits.Column(header: "Progress",  format: (item) => @Html.DropDownList("ProgressId", Model.First().Status.Select(l => new SelectListItem
                          {
                            Text = l.Text,
                            Value = l.Value,
                           Selected = ((WebGridRow)item)["ProgressId"].ToString() == 
                            l.Value
})))
                    )
                    )
        </div>
...