1

グリッドセルのチェックボックスがクリックされないようにすることはできますか?

これは私のコラムです:

{
    header: 'Select',
    dataIndex: 'indexSelect',
    width: 75,
    xtype: 'checkcolumn',
    renderer: this.CheckColumn_CheckStatus,
}

レンダラーを使用して、チェックボックスを無効または非表示にしようとしています。

CheckColumn_CheckStatus: function (value, metaData, record, rowIndex, colIndex, store) 
{
   //do something
}

何も返さない場合、または空の文字列を返す場合でも、チェックボックスはUIに表示されませんが、選択することはできます。

何か案は?

4

1 に答える 1

1

beforecheckchangeリスナーからfalseを返すことができます。

MVCパターンを使用している場合は、それをコントローラーに含めるだけです。

'yourgridpanel checkcolumn': {

    beforecheckchange: function(column, index) {
        var user = Ext.getStore('User').first();

        // I was doing this if a user doesn't have permission but
        // if you want to stop all edits you can just return false
        // without the "if" statement
        if (!user || !user.get('edit_permission')) {
            return false; // cancels checkchange event
        }
    }
}

MVCパターンを使用していない場合は、リスナーを列自体にアタッチするだけで済みます(この例では、すべてのチェック変更をキャンセルすることを想定しています)。

{
    header: 'Select',
    dataIndex: 'indexSelect',
    width: 75,
    xtype: 'checkcolumn',
    listeners: {
        beforecheckchange: function() {
            return false; // cancels all checkchanges
        }
    }
}, {
    // another column definition, etc...
}
于 2012-10-04T20:36:38.100 に答える