有人可以帮助我如何在我的 webgrid 列中放置一个下拉列表。
我需要将我的下拉列表绑定到模型中的列表。并且需要从列表中为网格中的每个对应记录选择一个项目。
而且我应该能够将 selcetd 值发布到控制器。
我已经在 mvc3 中的几个链接Dropdownlist propbelm和其他几个链接中尝试了解决方案。
我正在粘贴我的示例代码。
模型:
public class AllocateToStore
{
public IList<OrderLine> FailureAllocations { get; set; }
public IList<SelectListItem> AllocationStatus
{
get
{
// code to fetch list.
}
}
}
public class OrderLine
{
public long Id { get; set; }
public DateTime Date { get; set; }
public int Status { get; set; }
}
控制器:
public ActionResult AutoAllocate()
{
// This action will load the view with data.
// Get model data and send it to view.
return View("Allocated",model);
}
[HttpPost]
public ActionResult ResolveUnallocatedOrders(AllocateToStore coll)
{
// When user changes the selection in grid and post the page I need to get the selection // here. So that I can update that record.
return null;
}
观点是
@model AllocateToStore
@{
ViewBag.Title = "Orders";
}
@{
var grid = new WebGrid(Model.FailureAllocations, rowsPerPage: 100);
}
@using (Html.BeginForm("ResolveUnallocatedOrders", "OrderProcessing", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
if (Model.FailureAllocations.Any())
{
<div>
@grid.GetHtml(
columns: grid.Columns(
grid.Column(columnName: "Order date", header: "Order Date", format: item => item.Order.Date),
grid.Column("dropdown", header: "Resolution", format:
@<span>
@{ var index = Guid.NewGuid().ToString(); }
@Html.Hidden("Status.Index", index)
@Html.DropDownList("Status[" + index + "].SelectedValue", Model.AllocationStatus)
</span>
)
),
tableStyle: "expandable-table",
htmlAttributes: new { id = "gridFailureAllocations" }
)
<br />
<input type="submit" value="Resolve" id="resolve-button" />
</div>
}
}
谢谢,纳雷什