Kendo Grid Column绑定Dropdown Row明智绑定

时间:2013-04-16 14:04:34

标签: asp.net-mvc drop-down-menu grid kendo-ui

我在剑道网格上面临一个问题。

我有Kendo网格,我有一个下拉列表,它使用编辑器模板在ViewData["abc"]的基础上加载,并且还有2个字段,如到达日期和出发日期。

我的问题是我想根据到达日期和出发日期加载下拉列表,因此在这种情况下,每个下拉列表都有不同的值。那我该如何实现呢?

以下是示例代码:

控制器:

public ActionResult ManageRequests()
{
    try
    {
        var result = _partialControlService.PopulateDropdowns();
        PopulateDropdowns(result);
    }
    return View();
}

public void PopulateDropdowns(Model.ManageRequestDropdowns model)
{
    if (ViewData["hotels"] != null)
    {
        List<ClientHotelViewModel> objhotel = new List<ClientHotelViewModel>();
        objhotel = model.Hotels
               .Select(e => new ClientHotelViewModel
               {
                   HotelIDPK = e.HotelIDPK,
                   HotelName = e.HotelName
               }).OrderBy(e => e.HotelName).ToList<ClientHotelViewModel>();

        if (objhotel != null && objhotel.Count() > 0)
            objClientHotelViewModel.AddRange(objhotel);

        ViewData["hotels"] = objClientHotelViewModel.OrderBy(x => x.HotelIDPK);
    }
}

EditorTemplate:

@(Html.Kendo().DropDownList()
            .Name("Hotel")
            .DataValueField("HotelIDPK")
            .DataTextField("HotelName")
        .BindTo((System.Collections.IEnumerable)ViewData["hotels"])
)

ManageHotel.cshtml:

 @(Html.Kendo().Grid<HotelRooming.ViewModels.ManageRequestViewModel>()
    .Name("grid")
    .Columns(columns =>
    {
        columns.Bound(p => p.ArrivalDate).HtmlAttributes(new { @class = "Arrivaldate" }).Format("{0:MM/dd/yyyy}").Width(100);
        columns.Bound(p => p.DepartureDate).Format("{0:MM/dd/yyyy}").Width(100);
        columns.Bound(p => p.Hotel).Width(150).ClientTemplate("#=Hotel.HotelName#").HtmlAttributes(new { @class = "HotelNames" }).Filterable(false);
    })
)

型号:

public class ManageRequestViewModel
{
    [DisplayName("Check-in Date")]
    public DateTime ArrivalDate { get; set; }

    [DisplayName("Check-out Date")]
    public DateTime DepartureDate { get; set; }

    [UIHint("ClientHotel")]
    [DisplayName("Hotel")]
    public ClientHotelViewModel Hotel { get; set; }    
}

任何帮助都将非常感谢。

0 个答案:

没有答案