You need to enable JavaScript to run this app. ASP.NET Core中如何在Telerik Grid行中传递隐藏字段?
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中如何在Telerik Grid行中传递隐藏字段?

解决方案

你只需在Grid的DataSource模型配置中显式声明需要保留的隐藏字段,即可让这些值在更新操作时正常提交到后端,无需额外自定义逻辑。

修改后的核心代码如下:

@(Html.Kendo()
.Grid(Model)
.Name("Orders")
.Columns(columns =>
{
    columns.Bound(c => c.Name).Width(190);
    columns.Bound(c => c.CreatedById).Hidden();
    columns.Bound(c => c.ModifiedById).Hidden();
    columns.Command(command => { command.Destroy(); }).Width(100);
})
.Editable(editable => editable.Mode(GridEditMode.InCell))
.DataSource(dataSource => dataSource
    .Ajax()
    .Batch(true)
    .PageSize(20)
    .ServerOperation(false)
    .Events(events => events.Error("error_handler"))
    .Model(model => {
        model.Id(s => s.Id);
        // 显式声明隐藏字段,Editable(false)禁止用户修改,同时保留字段值在数据源中
        model.Field(s => s.CreatedById).Editable(false);
        model.Field(s => s.ModifiedById).Editable(false);
    })
    .Create(update => update.Action("BatchCreate", "Orders"))
    .Read(read => read.Action("BatchRead", "Orders"))
    .Update(update => update.Action("BatchUpdate", "Orders"))
    .Destroy(update => update.Action("BatchDestroy", "Orders"))
)

注意事项

  • Hidden()配置仅隐藏前端列展示,字段值会一直保留在客户端数据源中,配合上述模型声明即可正常提交。
  • 不要使用Visible(false)配置列,该配置会直接跳过字段的客户端数据源初始化,无法传递值。
  • 新增行场景如果需要给隐藏字段设置默认值,可在字段配置中补充DefaultValue()方法,示例:model.Field(s => s.CreatedById).DefaultValue(当前登录用户ID).Editable(false)。

内容的提问来源于stack exchange,提问作者serge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 23:36:02