0

我的某些列不可编辑,但我希望所有列都显示在添加表单中。

我在想我可以使用“beforeShowForm”事件并调用一个javascript函数,该函数将动态地将列属性更改回可编辑状态,以便它们显示在添加表单中。

4

2 回答 2

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(); }"
    }
);
于 2014-11-05T11:00:54.910 回答
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})
    })
于 2014-11-05T11:05:22.350 回答