使用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而言,如何使代码适应下拉列表呢?
我还没有测试过,但是我的想法是这样的:
@{
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>