0

我在我的 mvc5 项目中使用 JqGrid 和MVCJqGrid Html 包装器。我使用的 MVCJqGrid 版本是 1.0.15。我在我的 cshtml 文件中有以下代码,以便在页面中创建网格。

@(Html.Grid("Contacts")
        .SetCaption("Contacts")
        .SetUrl(@Url.Action("Contacts", "Home"))
        .SetAutoWidth(true)
        .SetViewRecords(true)
        .AddColumn(new Column("Name").SetAlign(Align.Left).SetEditable(false))
        .AddColumn(new Column("IsPrimaryContact").SetAlign(Align.Center).SetFormatter(Formatters.Checkbox).SetLabel("Is Primary?"))
        .AddColumn(new Column("Email").SetLabel("Email Address").SetFormatter(Formatters.Email))
        .AddColumn(new Column("Handphone").SetAlign(Align.Right).SetFormatter(Formatters.Number))
        .AddColumn(new Column("Office").SetAlign(Align.Right))
        .AddColumn(new Column("Telephone").SetAlign(Align.Right))
        .AddColumn(new Column("Other").SetAlign(Align.Right))
)

在上面的代码中,“IsPrimaryContact”是布尔值,我将其显示为网格中的复选框列。页面加载时,所有列都显示为只读,即我无法编辑,但复选框列仍可编辑,并且可以选中/取消选中列中的复选框。我希望复选框也被禁用,用户不应该能够改变它的值。我已经将 Checkbox 列的 SetEditable 添加为 false 并且还尝试了其他一些操作,但列中的复选框始终保持启用状态。页面加载时如何将列中的复选框显示为禁用?

4

1 回答 1

0

您可以使用自定义格式化程序,而不是使用标准格式化程序。你可以在这里找到一个例子 http://mvcjqgrid.skaele.it/Home/Formatters

为列设置自定义格式化程序:

.AddColumn(new Column("IsPrimaryContact").SetAlign(Align.Center).SetCustomFormatter("displayCheckBox").SetLabel("Is Primary?"))

格式化函数

<script type="text/javascript">
    function displayCheckBox(cellvalue, options, rowobject) {
        return '<input type="checkbox" value="' + cellvalue + '" disabled="disabled">';
    }
</script>

没有测试代码,但它应该可以工作;)

于 2014-12-09T10:44:22.030 回答