我的某些列不可编辑,但我希望所有列都显示在添加表单中。
我在想我可以使用“beforeShowForm”事件并调用一个javascript函数,该函数将动态地将列属性更改回可编辑状态,以便它们显示在添加表单中。
我的某些列不可编辑,但我希望所有列都显示在添加表单中。
我在想我可以使用“beforeShowForm”事件并调用一个javascript函数,该函数将动态地将列属性更改回可编辑状态,以便它们显示在添加表单中。
典型的方法是使字段通常可编辑并将它们隐藏在编辑对话框中。
您可以通过查找正在构建的 id 的表行来隐藏/显示字段,如下所示:
tr_ColumnName
因此,如果您有 UserName 列,则 id 将如下所示:
tr_UserName
假设您使用的是 jQuery,您可以将其连接到您的 Lib.Web.Mvc 配置,如下所示:
.Navigator(new Lib.Web.Mvc.JQuery.JqGrid.JqGridNavigatorOptions() { ... },
editActionOptions: new Lib.Web.Mvc.JQuery.JqGrid.JqGridNavigatorEditActionOptions()
{
...
BeforeShowForm : "function(form) { $('#tr_UserName', form).hide(); }"
},
addActionOptions: new Lib.Web.Mvc.JQuery.JqGrid.JqGridNavigatorEditActionOptions()
{
...
BeforeShowForm : "function(form) { $('#tr_UserName', form).show(); }"
}
);
我想出了如何使用beforeShowForm事件。
注意:我在视图顶部有一个 using 语句,因此不需要使用完整的命名空间
@using Lib.Web.Mvc.JQuery.JqGrid
这是导航器表单中的示例:
.Navigator(new JqGrid.JqGridNavigatorOptions()
{ Add = true, Edit = false, Delete = false, Search = false },
null,
addActionOptions: new JqGridNavigatorEditActionOptions()
{
Url = Url.Action("Add"),
BeforeShowForm = "function () {$('#bob').jqGrid('setColProp',
'Place', {editable:true})
})