在剑道网格中掉落

时间:2015-02-13 13:10:54

标签: kendo-ui kendo-grid kendo-dropdown

我需要在Kendo Grid中添加一个下拉列表。我试图通过使用EditorTemplate添加,但代码中的某些内容并不正确,这就是为什么它不适用于我。下拉列表有3个值(Donate,Refund,Undo)。下面是我的剑道网格,我需要在第一列显示下拉列表。请帮忙。

  @(Html.Kendo().Grid<GA.CustomerCare.Web.Synergy.Models.CustomerOrderARInfo>
                    (Model.CustomerOrderARInfoResult)
                    .Name("SearchResultsGridParent")
                    .Columns(columns =>
                    {
                        columns.Bound(e => e.ActionList).Width(100).EditorTemplateName("ActionDropdownEditor");
                        columns.Bound(e => e.TransNumber).Width(85);
                        columns.Bound(e => e.OriginalTransNumber).Width(85);
                        columns.Bound(e => e.DateEntered).Width(115);
                        columns.Bound(e => e.TransDate).Width(85);
                        columns.Bound(e => e.TransType).Width(130);
                        columns.Bound(e => e.Status).Width(100);
                        columns.Bound(e => e.Amount).Width(100);
                        columns.Bound(e => e.AmountApplied).Width(100);
                        columns.Bound(e => e.AvailableFunds).Width(85);
                        columns.Bound(e => e.AdjustmentReason).Width(85);
                        columns.Bound(e => e.CcCheckGiftCard).Width(155);
                        columns.Bound(e => e.PaypalTransID).Width(135);
                        columns.Bound(e => e.Area).Width(85);
                        columns.Bound(e => e.EnteredBy).Width(115);
                        columns.Bound(e => e.Reference).Width(155);
                        columns.Bound(e => e.DateCapture).Width(155);
                        columns.Bound(e => e.AmountCapture).Width(155);

                    })
                    .Sortable(sortable => sortable
                    .AllowUnsort(true)
                    .SortMode(GridSortMode.MultipleColumn)
                    )
                    .Resizable(resize => resize.Columns(true))
                    .ColumnResizeHandleWidth(10)
                    .Scrollable(scrolling => scrolling.Height(190))
                    //.ClientDetailTemplateId("template")
                                                        //.HtmlAttributes(new { style = "height:430px;" })
                    .DataSource(dataSource => dataSource
                    .Ajax()
                    .Read(read => read.Action("GetCustomerOrderAR", "Order", new { CustomerOrderID = Model.CustomerOrderID }))
                    )
                                                        )

以下是我在模型中使用的属性:

  [Display(Name = "ActionList")]
    public string ActionList { get; set; }

以下是我的ActionDropdownEditor:

@model string

   @(Html.Kendo().DropDownList()
            .Name("ActionList")  //Important, must match the column's name
        .Value(Model)
        .SelectedIndex(0)
        .BindTo(new string[] { "Donate", "Refund", "Undo" })) 

2 个答案:

答案 0 :(得分:1)

我也尝试过使用带有DropDown的kendo Grid,就像你使用它一样工作。 请检查您的代码是否缺少某些参考。

column.Bound(p => p.ActionList).ClientTemplate("#= ActionList !=null ? ActionList : '' #").EditorTemplateName("_Sex").Title("ActionList");

我将整个下拉菜单放在EditorTemplates文件夹中,以便您查看代码:

@using Kendo.Mvc.UI
@(Html.Kendo().DropDownListFor(m => m)
                .Name("ActionList").HtmlAttributes(new { @style = "font-size:12px", @class = "PaxType" })
                  .BindTo(new string[] { "Donate", "Refund", "Undo" }))

答案 1 :(得分:0)

您可以使用ClientTemplate中的html将DropDownList放入Kendo Grid中。我使用以下内容实现了类似的东西...

column.Bound(p => p.WFKeyType).Title("Type").ClientTemplate("<select class='form-control'><option value='' disabled='disabled' selected='selected'>Select Key Type</option><option value='String'>String</option><option value='Integer'>Integer</option><option value='DateTime'>DateTime</option><option value='Currency'>Currency</option><option value='Bool'>Bool</option></select>");

在Grid列中生成DropDownList,包含'String','Integer','DateTime','Currency'和&amp; 'Bool'作为选择。 'form-control'类来自Bootstrap,可帮助列更清晰。您的项目需要在可以访问类之前添加Bootstrap 3。