gpt4 book ai didi

kendo-ui - 过滤网格时,Kendo 工具栏的 AddNew 按钮不起作用

转载 作者:行者123 更新时间:2023-12-05 01:08:38 25 4
gpt4 key购买 nike

我有一个小的剑道网格,设置如下。以一种令人难以置信的神秘方式,“添加新”的 Controller Action ,即 BatchCreate只有在单击“添加新”后单击另一个命令按钮时才会调用。例如。 a) 单击“添加新”,什么也没有发生。 b) 重新加载页面,然后单击“添加新”,没有任何 react ,然后单击“保存更改”,然后是 BatchCreate方法最终被调用。

我的网格看起来像这样,几乎直接从他们的示例中复制而来:

@(Html.Kendo().Grid<LocationIndexItem>()
.Name("index-grid")
.Columns(columns =>
{
columns.Bound(p => p.Name);
columns.Bound(p => p.IsActive).ClientTemplate(
"<input type='checkbox' value='#= IsActive #' " +
"# if (IsActive) { #" +
"checked='checked'" +
"# } #" +
"/>").Width(70);
columns.Bound(p => p.Remarks);
columns.Command(cmd => cmd.Destroy());
})
.ToolBar(toolbar =>
{
toolbar.Create();
toolbar.Save();
})
//.Events(e => e.Edit("gridEdit"))
.Editable(editable => editable.Mode(GridEditMode.InCell))
.Filterable()
.Pageable()
.Scrollable()
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Batch(true)
.PageSize(20)
.Events(events => events.Error("errorHandler"))
.Model(model => model.Id(p => p.Id))
.Read(read => read.Action("Read", "Location"))
.Update(update => update.Action("BatchUpdate", "Location"))
.Create(create => create.Action("BatchCreate", "Location"))
.Destroy(destroy => destroy.Action("BatchDelete", "Location"))
)
)

另一个完全相同的网格,除了一个额外的字段,效果很好。

就在:使用以下代码过滤网格似乎会导致上述行为。当我评论注释行时, $("#ParkadeId").change()出来,网格表现正常:
$(function() {
$("#ParkadeId").change(function () {
var value = $(this).val();
var grid = $("#index-grid").data("kendoGrid");
if (value) {
grid.dataSource.filter({ field: "ParkadeId", operator: "eq", value: parseInt(value) });
} else {
grid.dataSource.filter({});
}
});
//$("#ParkadeId").change();
});

在 Kendo 网格上设置过滤器似乎会破坏添加新功能。

最佳答案

根据 Kendo Ui 支持论坛 - 这是在客户端应用过滤/排序时的预期行为,因为在当前 View 之外创建新记录时,无法对其进行编辑。

可能的解决方案是启用服务器排序/过滤或实现自定义“添加记录”按钮,该按钮首先清除数据源当前过滤器和排序,然后使用网格 API 添加新记录。

这是在添加新记录之前清除当前过滤器和排序的函数示例:

function createNew() {
var grid = $("#grid").data("kendoGrid");
grid.dataSource.filter({});
grid.dataSource.sort({});
//add record using Grid API
grid.addRow();
}

关于kendo-ui - 过滤网格时,Kendo 工具栏的 AddNew 按钮不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16923285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com