剑道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"))
)
任何帮助都将非常感激。
亲切的问候,
加雷思
剑道文档(锁列)中说:
为了使用这个方法,网格必须用at初始化至少有一个锁定列,之后应该还有锁定列
目标列未锁定。
所以我会尝试在开始时添加一个锁定列,然后将其解锁/删除。
var grid = $("#grid").data("kendoGrid");
grid.lockColumn("Lock columns");
grid.unlockColumn("unlock first column");
http://jsfiddle.net/calinaadi/p2710yoL/来自Telerik的Radoslav回复我说:
"当列分组时,只有根组可以锁定和锁定,不幸的是,组中的列不支持这种功能。因此,在您的示例中,为了拥有锁定的列,您需要删除组并直接向网格添加列。"
由于我们有一个初始分组列作为"hacky"方式在我们的网格上有一个标题,我们不能这样做,因为我们只能锁定根列,因此我们只能锁定我们的"hacky"列