【问题标题】:Offval attribute custom checkbox formatter jqGridOffval 属性自定义复选框格式化程序 jqGrid
【发布时间】:2013-01-31 10:31:51
【问题描述】:

我正在编写一个自定义复选框格式化程序,但我无法理解 offval 属性的用途以及它的值应该是什么。

尤其是在设置了 editoptions 的值时。例如editoptions: { value:"Yes:No" }

我可以看到默认的复选框格式化程序总是将offval 设置为no。这个api documentation 表示它也可以设置为off。在代码中,我还看到该值可以设置为 editoptions 的第二个值。对于No 的示例,但这可以是任何提供的值。

那么如何为我的复选框格式化程序实现 offval 属性?提前致谢!

【问题讨论】:

    标签: jqgrid


    【解决方案1】:

    我认为您不需要在自定义复选框格式化程序中设置任何 offval 属性。如果使用edittype: "checkbox"(参见the part of code),jqGrid 会自行设置属性。所以在我看来,你不需要在custom formatter 和custom editing control 中设置offval,如果你也创建它的话。

    顺便说一句,当我发布formatter: "clickableCheckbox" 的代码时,我和你有同样的问题。我不明白offval 的意思,我只是在代码中包含了offval="no"。 :-)。我认为这没有任何意义,但要确保必须测试所有原因。

    如果您编写多次使用的自定义格式化程序,我建议您使用

    (function ($) {
        "use strict";
        $.extend($.fn.fmatter, {
            yourFormatterName: function (cellValue, options) {
                ....
            }
        });
        $.extend($.fn.fmatter.yourFormatterName, {
            unformat: function (cellValue, options, elem) {
                ...
            }
        });
    }(jQuery));
    

    作为格式化程序的原型。您将注册新的格式化程序“yourFormatterName”,您可以像使用任何其他predefined formatters 一样使用它:您只需在相应列的列定义中使用formatter: "yourFormatterName" 而不是formatter: "checkbox"。我觉得这种方法很实用。

    【讨论】:

    • 我已经使用了您提供的格式:-)。完成后会发布我的格式化程序,首先需要澄清offval属性。我看到它也在这里使用github.com/tonytomov/jqGrid/blob/v4.4.4/js/…
    • @MartijnB:你引用了表单编辑的代码。表单中的控件是由我在回答中引用的createEl 函数创建的。因此,如果使用edittype: "checkbox",offval 将根据返回您的unformat 函数的值进行设置。所以我继续认为在 formatter 中不需要或使用 offval 属性。
    • 我开始相信你是对的。但后来我不明白为什么默认的复选框格式化程序包含 offval。
    • @MartijnB:我认为每个程序都可以改进。 :-) jqGrid 也将得到永久改进。
    • 我将这个问题暂时开放到下周,否则我将其标记为您已回答 - 我目前的进度 - gist.github.com/4673081
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-12
    • 1970-01-01
    相关资源
    最近更新 更多