GRID 中的列客户端模板
Column Client Template in GRID
我正在将应用程序从 MVC 5 迁移到 Core 2.0。我们面临网格客户端模板的问题,因为当我们将它与可编辑的 属性 一起使用时我们无法使用它。以下是代码。
@(Html.Kendo().Grid<PPVR>()
.Name("PPVRGird")
.Columns(columns =>
{
columns.Bound(e => e.Id).Hidden();
columns.Bound(c => c.Name);
columns.Bound(c => c.Quantity);
columns.Bound(c => c.Type);
columns.Bound("").ClientTemplate("<div style='text-align:center'><a href='javascript:void(0)' class='k-grid-edit custom-action-button'onclick='customGridEditClick(this)'><img src='/Content/edit.svg' width ='40' height='40'/><br/>Edit</a></div>").HeaderHtmlAttributes(new { @class = "custom-action-button" }).Title("Edit").Width(150);
columns.Bound("").ClientTemplate("<div style='text-align:center'><a href='javascript:void(0)' class='custom-action-button pull-center' onclick='deletePayPerViewRules(#=Id#)'><img src='/Content/trashed.svg' width='40' height='40' /><br />Delete</a></div>").HeaderHtmlAttributes(new { @class = "custom-action-button" }).Width(200);
})
.Pageable()
.HtmlAttributes(new { style = " text-align:left; font-family:lato; font-size:16px; " })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(100)
.Read(read => read.Action("GetPPVR", "PPV"))
.Model(model =>
{
model.Id(u => u.Id);
model.Field(u => u.Type).Editable(false);
})
.Update(update => update.Action("UpdatePPVR", "PPV")))
.Editable(editable => editable.Mode(GridEditMode.InLine))
)
这带来了空白页。当我评论 .Editable(editable => editable.Mode(GridEditMode.InLine)) 页面时。它在 MVC 5 中运行良好,但在核心 2.0 中运行不佳。
请建议我该如何实现。
UPDATE => 只有当我使用内联选项进行编辑时才会出现此问题,当我使用弹出窗口时它工作正常。
好的,经过 2 天的等待,我收到了 Telerik 团队的回复。
一个可能的解决方案是将所需的列绑定到任何字段,并使用 columns.editable 配置来防止对这些列进行编辑。
https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/configuration/columns.editable
columns.Bound(p => p.Freight).ClientTemplate("Hi").HeaderHtmlAttributes(new { @class = "custom-action-button" }).Width(200).Editable("function(){return false;}");
columns.Bound(p => p.Freight).ClientTemplate("Bye").HeaderHtmlAttributes(new { @class = "custom-action-button" }).Title("Sample").Width(150).Editable("function(){return false;}");
这对我来说似乎是一种解决方法,但效果很好。
希望这个问题也能节省其他人的时间。
我正在将应用程序从 MVC 5 迁移到 Core 2.0。我们面临网格客户端模板的问题,因为当我们将它与可编辑的 属性 一起使用时我们无法使用它。以下是代码。
@(Html.Kendo().Grid<PPVR>()
.Name("PPVRGird")
.Columns(columns =>
{
columns.Bound(e => e.Id).Hidden();
columns.Bound(c => c.Name);
columns.Bound(c => c.Quantity);
columns.Bound(c => c.Type);
columns.Bound("").ClientTemplate("<div style='text-align:center'><a href='javascript:void(0)' class='k-grid-edit custom-action-button'onclick='customGridEditClick(this)'><img src='/Content/edit.svg' width ='40' height='40'/><br/>Edit</a></div>").HeaderHtmlAttributes(new { @class = "custom-action-button" }).Title("Edit").Width(150);
columns.Bound("").ClientTemplate("<div style='text-align:center'><a href='javascript:void(0)' class='custom-action-button pull-center' onclick='deletePayPerViewRules(#=Id#)'><img src='/Content/trashed.svg' width='40' height='40' /><br />Delete</a></div>").HeaderHtmlAttributes(new { @class = "custom-action-button" }).Width(200);
})
.Pageable()
.HtmlAttributes(new { style = " text-align:left; font-family:lato; font-size:16px; " })
.DataSource(dataSource => dataSource
.Ajax()
.PageSize(100)
.Read(read => read.Action("GetPPVR", "PPV"))
.Model(model =>
{
model.Id(u => u.Id);
model.Field(u => u.Type).Editable(false);
})
.Update(update => update.Action("UpdatePPVR", "PPV")))
.Editable(editable => editable.Mode(GridEditMode.InLine))
)
这带来了空白页。当我评论 .Editable(editable => editable.Mode(GridEditMode.InLine)) 页面时。它在 MVC 5 中运行良好,但在核心 2.0 中运行不佳。
请建议我该如何实现。
UPDATE => 只有当我使用内联选项进行编辑时才会出现此问题,当我使用弹出窗口时它工作正常。
好的,经过 2 天的等待,我收到了 Telerik 团队的回复。
一个可能的解决方案是将所需的列绑定到任何字段,并使用 columns.editable 配置来防止对这些列进行编辑。 https://docs.telerik.com/kendo-ui/api/javascript/ui/grid/configuration/columns.editable
columns.Bound(p => p.Freight).ClientTemplate("Hi").HeaderHtmlAttributes(new { @class = "custom-action-button" }).Width(200).Editable("function(){return false;}");
columns.Bound(p => p.Freight).ClientTemplate("Bye").HeaderHtmlAttributes(new { @class = "custom-action-button" }).Title("Sample").Width(150).Editable("function(){return false;}");
这对我来说似乎是一种解决方法,但效果很好。
希望这个问题也能节省其他人的时间。