我的某些列不可编辑,但我希望所有列都以添加形式显示。
我在想我可以使用" beforeShowForm"事件并调用一个javascript函数,它将动态地将列属性更改回可编辑状态,以便它们显示在添加表单中。
答案 0 :(得分:1)
这种方法的典型方法是使字段通常可编辑,并在编辑对话框中隐藏它们。
您可以通过查找正在构建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(); }"
}
);
答案 1 :(得分:1)
我想到了如何使用事件 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})
})