0

私は Editable from Datatablesを持っています。新しいアイテムをテーブルに追加するときに「ブラウザ」フィールドを編集可能にし、たとえば編集できないようにする必要があります。編集時に「ラベル」を付けます。ボタンで追加開始、行をクリックで編集開始。したがって、これらのアクションに何かを追加することはできますが、フィールドのタイプを簡単に変更できるかどうかはわかりません。

ediTable({ fields: [{ name: 'Engine', type: 'select',
        selectOptions: ENGINE_OPTIONS
    },
                { name: 'Browser', type: 'text' },
                { name: 'Version', type: 'label' },
                { name: 'Platform', type: 'label' },
                { name: 'Grade', type: 'select', selectOptions: ['A', 'B', 'C', 'D', 'X'] },
                { name: 'Active', type: 'checkbox', trueValue: 'Y', falseValue: 'N'}]

ボタンに追加しようとしたコードですが、何も変更されていません:

// edit the new row
emptyTable.ediTable('newRow', defaultData, { name: 'Browser', type: 'label' }); return false;
4

1 に答える 1

0

フィールドのタイプを変更することはできませんが、新しいアイテムを追加するときに編集可能にするために、フィールドRowのパラメーターを確認しonPreShowFormてから、フィールドの属性を変更することができます。

渡されたRowものがnullの場合、新しい行を入力するためにフォームが表示されることがわかります。nullでない場合Rowは、データを変更するためにフォームが表示されます。

onPreShowForm: function (table, form, row) {
                $("#btn-new").addClass("ui-state-disabled");

                browserInput = $('input[name|="Browser"]');
                if (row) {
                    browserInput.addClass("ui-state-disabled");
                    browserInput.attr("disabled", "disabled");
                } else {
                    browserInput.removeClass("ui-state-disabled");
                    browserInput.removeAttr("disabled");
                }
            }
于 2012-11-07T08:57:54.193 に答える