【发布时间】:2013-03-01 13:33:39
【问题描述】:
是否可以只在剑道网格中插入新记录,但禁用编辑记录?
我能做的最好是 onDataBound 删除 JavaScript 中的“编辑”按钮。
我尝试设置Editable(ed => ed.Enabled(false)),但在运行时出现错误。
@(Html.Kendo().Grid(Model)
.Name("Grid" + guid)
.HtmlAttributes(new { style = "margin:20px" })
.Columns(columns =>
{
columns.Bound(p => p.Id).Hidden(true);
//a few more columns
columns.Command(command =>
{
command.Edit().Text(Resources.KendoEdit).UpdateText(Resources.KendoUpdateText).CancelText(Resources.KendoCancelText);
command.Destroy().Text(Resources.KendoDestroy);
}).Title(Resources.KendoCommands).Width(180);
})
.ToolBar(toolbar => toolbar.Create().Text(Resources.KendoToolbarCreate))
.Editable(editable => editable
//.Enabled(false)
.Mode(GridEditMode.InLine)
.DisplayDeleteConfirmation(false)
)
.DataSource(dataSource => dataSource
.Ajax()
.ServerOperation(false)
.Events(events => events.Sync("sync").Error("error"))
.Model(mod => mod
.Id(p => p.Id)
)
.Model(mod => mod
.Field(p => p.OldRoleId).Editable(false)
)
.Read(read => read.Action("ChangeRole_Read", "ChangeRole"))
.Create(update => update.Action("ChangeRole_Create", "ChangeRole"))
.Update(update => update.Action("ChangeRole_Update", "ChangeRole"))
.Destroy(update => update.Action("ChangeRole_Destroy", "ChangeRole"))
)
.Sortable()
.Filterable(filterable => filterable
.Extra(true)
.Operators(operators => operators
.ForString(str => str.Clear()
.StartsWith(Resources.KendoFilterStartsWith)
.IsEqualTo(Resources.KendoFilterIsEqualTo)
.IsNotEqualTo(Resources.KendoFilterIsNotEqualTo)
.Contains(Resources.KendoFilterContains)
.DoesNotContain(Resources.KendoFilterDoesNotContain)
.EndsWith(Resources.KendoFilterEndsWith)
)
)
.Messages(mess => mess
.Info(Resources.KendoFilterMsgInfo)
.And(Resources.KendoFilterMsgAnd)
.Or(Resources.KendoFilterMsgOr)
.Filter(Resources.KendoFilterMsgFilter)
.Clear(Resources.KendoFilterMsgClear)
)
)
.Scrollable()
.Pageable(pg => pg
.Refresh(true)
.Messages(ms => ms
.First(Resources.KendoPageableFirst)
.Last(Resources.KendoPageableLast)
.Next(Resources.KendoPageableNext)
.Previous(Resources.KendoPageablePrevious)
.Empty(Resources.KendoPageableEmpty)
.Display(Resources.KendoPageableDisplay)
)
)
.Events(ev => ev
.Edit("edit")
.Save("save")
.DataBound("dataBound")
)
)
【问题讨论】:
-
您能否提供一个代码示例来说明您如何配置网格?你遇到了什么错误?
-
您使用什么编辑模式?根据您的设置有不同的方法。
-
这是有问题的部分:
.Editable(editable => editable .Enabled(false) .Mode(GridEditMode.InLine) .DisplayDeleteConfirmation(false) )它禁用编辑(不可点击),但:不会删除“编辑”按钮。我想删除“编辑”按钮。正如我所说,我能做的最好的就是用 JQ 删除它。更重要的是,如果我离开.Enabled(false),而不是尝试创建新记录时,我会收到此错误:此请求已被阻止,因为敏感信息可能会在 GET 请求中使用时泄露给第三方网站...跨度> -
该错误是由 .NET 阻塞 JSON GET 请求引起的。您可以通过将 JsonRequestBehavior 参数添加到控制器操作返回的 JsonResult 来修改控制器操作以接受这些操作。
-
@nukefusion 是的,但是为什么设置 .Enabled(false) 会导致这个错误?
标签: asp.net-mvc kendo-ui kendo-grid