如何使用lib.web.mvc配置beforeShowForm以在添加表单中显示不可编辑的列

时间:2014-11-05 02:15:04

标签: jqgrid lib.web.mvc

我的某些列不可编辑,但我希望所有列都以添加形式显示。

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

2 个答案:

答案 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})
    })