2013-01-31 105 views
2

我正在編寫一個自定義複選框格式化程序,我無法理解offval屬性用於何處以及它的值應該是什麼。Offval屬性自定義複選框格式化程序jqGrid

特別是在設置editoptions的值時。例如editoptions: { value:"Yes:No" }

我可以看到默認複選框格式化程序始終將offval設置爲no。這api documentation說它也可以設置爲off。在代碼中,我還看到可以將該值設置爲editoptions的第二個值。以No爲例,但這可以是任何提供的值。

那麼如何實現我的複選框格式化程序的offval屬性?提前致謝!

回答

0

我不認爲您需要在自定義複選框格式化程序中設置任何offval屬性。如果使用edittype: "checkbox"(參見the part of code),jqGrid設置屬性本身。所以在我看來,你不需要在你的custom formattercustom 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"。我覺得這種方式非常實用。

+0

我已經使用您提供的格式:-)。完成後會發布我的格式化程序,首先需要澄清offval屬性。我看到它也在這裏使用https://github.com/tonytomov/jqGrid/blob/v4.4.4/js/grid.formedit.js#L398-L404 –

+0

@MartijnB:你引用了**表單編輯的代碼**。表單中的控件是由我在答案中引用的'createEl'函數創建的。因此,如果使用'edittype:「複選框,''offval'將根據返回'unformat'函數的值來設置。所以我仍然認爲**格式化程序**中不需要或不使用'offval'屬性。 – Oleg

+0

我開始相信你是對的。但後來我不明白爲什麼默認複選框格式化程序包含offval。 –