JqG​​rid:Checkbox格式化程序

时间:2014-11-28 09:36:51

标签: jquery checkbox jqgrid formatter

我正在尝试在我的列上应用复选框。我想知道的是如何根据值检查或取消选中框。例如,如果列的值为“1”,请选中此框,但如果列的值为“0”或“null”,则必须取消选中该框。

下面的代码是我整个jqgrid代码的一部分。

coleModel[{
    name: 'MENU1', 
    index: 'MENU1', 
    editable: true, 
    sortable: false, 
    search: false, 
    edittype:'checkbox',
    editoptions: { value:"1:0"},
    formatter: function (cellValue, options, rowObject) {
        if (cellValue == '1') {
            return 'Enabled';
        }else if(cellValue == '0') {
            return 'Disabled';
        }else{
            return cellValue;
        }
    }
}]

此列在列表中显示为“已启用”或“已禁用”。 我不知道如何显示复选标记。请让我知道怎么做。谢谢。

----------------------------------------------------------------------------------------
抱歉错误的问题。很难向我描述。嗯..你们可以参考网站“http://www.trirand.com/jqgridwiki/doku.php?id=wiki:form_editing”。 'editGridRow'下面的图片。名为'closed'的列是我正在寻找的。 我不是这个领域的专家,所以我无法解释清楚。非常抱歉。

1 个答案:

答案 0 :(得分:1)

您很难理解您,因为您以错误的方式使用现有术语。 Formatter将仅用于根据输入值将数据放入网格单元格中。例如,您在代码中使用了自定义格式化程序,其中包含字符串"已启用"在列中,如果输入数据是" 1"它放置字符串" Disabled"如果输入数据是" 0"。

,则在列中

从评论的后期讨论到你的问题,我可以理解(我希望现在我理解正确),你在编辑表单中使用edittype: 'checkbox'时遇到了问题。

了解编辑表单将根据列中的值构建,这一点非常重要。如果您使用自定义格式化程序放置"已启用"或"已禁用"在列中,您可以使用

edittype: "checkbox", editoptions: { value: "Enabled:Disabled" }

The demo演示了解决方案。

另一个直觉规则是始终与格式化程序一起定义unformatter。例如,您可以将以下内容与现有的formatter代码

结合使用
unformat: function (cellvalue) {
    switch (cellvalue) {
        case "Enabled":
            return "1";
        case "Disabled":
            return "0";
        default:
            return "0";
    }
},
edittype: "checkbox", editoptions: { value: "1:0" }

The demo使用代码。

还有一个选项是删除自定义格式化程序。如果需要将输入数据替换为字符串,则可以使用predefined formatter: "select"。在这种情况下,列的定义将包含以下属性

formatter: "select", formatoptions: { value: "0:Disabled;1:Enabled" },
edittype: "checkbox", editoptions: { value: "1:0", defaultValue: "1" }

由于所有预定义格式化程序也定义了非格式化,因此value的{​​{1}}选项将为edittype: "checkbox"

The demo使用属性,jqGrid的外观与之前的演示相同。

我个人认为一件事不合逻辑。您显示"已启用"或"已禁用"在网格中,但您在编辑表单中使用复选框。在我看来并非随之而来。您也应该在网格中使用"1:0"并将复选框放在网格中,或者使用formatter: "checkbox"代替edittype: "select"。在最后一种情况下,用户将仅使用文本"已启用"和#34;已禁用"。

The corresponding demo显示选择(下拉列表),其值为"已启用"和#34;已禁用"在编辑表格中:

enter image description here