satymale’s diary

日々の忘備録

Gridの編集制御

例えば、権限を持っていないユーザには行の編集をさせたくないという事がある。
そういう場合は、onEditFieldを使う。

$('#grid').w2grid({
    name : 'grid',
    columns: [                
        { field: 'recid', caption: 'ID', size: '50px' },
        { field: 'lname', caption: 'Last Name', size: '30%' },
        { field: 'fname', caption: 'First Name', size: '30%' }
    ],
    onEditField: function (event) {
        if (権限がない場合) {
            // 編集イベントをキャンセル
            event.preventDefault();
        }
    }
});

Multi Selectsの初期選択

FormのMulti Selectsの初期選択は以下の記載を元にselectedにて指定していたのですが、初期選択表示されませんでした。

$('#enum').w2field('enum', { 
    items: people,
    openOnFocus: true,
    selected: [{ id: 0, text: 'John Adams' }, { id: 0, text: 'Thomas Jefferson' }]
});

ソースを読んでみると、recordの値でselectedが上書きされていました。
なので次のように設定するとデフォルト値として表示されます。

 $('#form').w2form({ 
    name     : 'form',
    url      : 'server/post',
    header   : 'Field Types',
    formURL  : 'data/form.html', 
    fields: [
        { field: 'field_enum', type: 'enum', openOnFocus: true, options: { items: [{ id: 0, text: 'Adams' }, { id: 1, text: 'Johnson' }] } },
    ],
    record : {
        field_enum : [{ id: 0, text: 'Adams' }]
    }
});