如何使用WebGrid MVC C#中的模型下拉列表

问题描述 投票:0回答:1

使用webgrid实施下拉列表的最佳或最简便方法是什么?

@{
    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显示'Status'。就目前显示当前的ProgressID而言,如何使代码适应下拉列表呢?

c# model-view-controller webgrid
1个回答
0
投票

我还没有测试过,但是我的想法是这样的:

@{
    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>
© www.soinside.com 2019 - 2024. All rights reserved.