剑道MVC网格列不锁定

本文关键字:锁定 网格 MVC 剑道 | 更新日期: 2023-09-27 18:16:31

我有一个剑道网格,我从System.Data.DataTable动态构建。我在试图锁定列时遇到问题。

我设置了一些列锁定基于他们的标题,你会在我的代码中看到。布尔检查在预期的情况下返回true或false,并且在.Locked()属性中正确设置了该值。但是网格没有锁定该列,也没有在列菜单中给我Lockable选项。

请参阅下面我的代码:

   @model MvcProject.UnitOfWork.ViewModels.Reports.FacilityEquipmentDistributionVm

   @(Html.Kendo().Grid<dynamic>()
   .Name("resultsGrid")
                   .Columns(columns =>
                        {
                            columns.Group(group => group
                                .Title("Facility Equipment Distribution Report : Date run - " + DateTime.Now.ToShortDateString())
                                .Columns(header =>
                                {
                                    foreach (System.Data.DataColumn column in Model.CombinedTable.Columns)
                                    {
                                        string title = "";
                                        bool showColumn;
                                        if (Model.ColumnTitles.TryGetValue(column.ColumnName, out title))
                                        {
                                        }
                                        else
                                        {
                                            title = column.ColumnName;
                                        }
                                        if (Model.ColumnsToShow.TryGetValue(column.ColumnName, out showColumn))
                                        {
                                        }
                                        else
                                        {
                                            showColumn = false;
                                        }
                                        bool lockColumn = (title == "PropertyRef" || title == "PropertyName" || title == "Address" || title == "Prefix" || title == "Floor");
                                       header.Bound(column.ColumnName)
                                            .Title(title)
                                            .Visible(showColumn)
                                            .Locked(lockColumn)
                                            .Lockable(true)
                                            .Width(title.Length * 8);
                                    }
                                })
                            );
                        })
                    .HtmlAttributes(new { style = "height: 900px;" })
                        .Pageable(p => p
                            .ButtonCount(5)
                            .PageSizes(true)
                            .Refresh(true)
                        )
                        .Scrollable(s => s.Height("auto").Enabled(true))
                        .Sortable()
                        .Reorderable(reorderable => reorderable.Columns(true))
                        .Filterable()
                        .Groupable()
                        .ColumnMenu()
                        .Resizable(r => r
                            .Columns(true)
                        )
                            .Excel(excel => excel
                                .FileName("Facility Equipment Distribution.xlsx")
                                .Filterable(true)
                                .ProxyURL(Url.Action("_GridExportSave", "Reports"))
                                .AllPages(true)
                            )
                        .DataSource(d => d
                            .Ajax()
                            .Read(read => read.Action("_FacilityEquipmentDistributionResults_Read", "Reports").Data("Genesis.Reports.Space.Search.getPaginationData"))
                                .ServerOperation(true)
                                .PageSize(20)
                            )
                            .ToolBar(tools =>
                            {
                                tools.Pdf();
                                tools.Excel();
                            })
    //PDF removed for now until it is patched
                            .Pdf(pdf => pdf
                                 .AllPages()
                                .FileName("FacilityEquipmentDistribution.pdf")
                                .ProxyURL(Url.Action("_GridExportSave", "Reports"))
                            )
                            //.Events(events => events.DataBound("Genesis.Reports.Space.Search.loadTT"))

)

任何帮助都将非常感激。

亲切的问候,

加雷思

剑道MVC网格列不锁定

剑道文档(锁列)中说:

为了使用这个方法,网格必须用at初始化至少有一个锁定列,之后应该还有锁定列

目标列未锁定。

所以我会尝试在开始时添加一个锁定列,然后将其解锁/删除。

    var grid = $("#grid").data("kendoGrid");
    grid.lockColumn("Lock columns");
    grid.unlockColumn("unlock first column");
http://jsfiddle.net/calinaadi/p2710yoL/

来自Telerik的Radoslav回复我说:

"当列分组时,只有根组可以锁定和锁定,不幸的是,组中的列不支持这种功能。因此,在您的示例中,为了拥有锁定的列,您需要删除组并直接向网格添加列。"

由于我们有一个初始分组列作为"hacky"方式在我们的网格上有一个标题,我们不能这样做,因为我们只能锁定根列,因此我们只能锁定我们的"hacky"列