【问题标题】:MVCJqGrid checkbox column disableMVCJqGrid 复选框列禁用
【发布时间】:2015-02-07 01:05:14
【问题描述】:

我在我的 mvc5 项目中使用带有 MVCJqGrid Html 包装器的 JqGrid。我使用的 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 并且还尝试了其他一些操作,但列中的复选框始终保持启用状态。如何在页面加载时将列中的复选框显示为禁用?

【问题讨论】:

    标签: jqgrid asp.net-mvc-5 mvcjqgrid


    【解决方案1】:

    您可以使用自定义格式化程序,而不是使用标准格式化程序。你可以在这里找到一个例子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>
    

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

    【讨论】:

    • 感谢罗宾的回答。我是 JqGrid 的新手,你的这个答案教会了我使用 CustomFormatter。我还有一个问题,但与这个问题无关。如果我想为数据提供绑定而不是从控制器方法获取数据,这可能吗?我用KMVC
    • 如果我正确理解你的问题,你的意思是像 asp.net webforms 中的数据绑定?如果是这样,不,据我所知这是不可能的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    相关资源
    最近更新 更多