3

興味深い問題に遭遇しました。

カスタム レンダリングで GridPanel を出力します。レンダラーは実行時に基本的な html 入力フィールドを出力しますが、入力でテキストを選択できません。編集することはできますが、入力ボックス内をクリックしてドラッグする必要がある場合、テキストを選択することはできません。

ここに抜粋があります:

tsGrid = new Ext.grid.GridPanel({
        id          : 'gridTimes',
        store       : gridStore,
        border      : false,
        deletedLineIDs  : [],
        viewConfig  : {
            forceFit    : true
        },
        plugins     : [
            actionColumn
        ],
        cm          : new Ext.grid.ColumnModel([
            {id:'client',header: "client", width: 40, sortable: true, dataIndex: 'client'},
            {header: "product", width: 20, sortable: true, dataIndex: 'product'},
            {header: "job", width: 20, sortable: true, dataIndex: 'job'},
            {header: "task", width: 20, sortable: true, dataIndex: 'task'},
            {header: "notes", width: 20, sortable: true, dataIndex: 'notes'},
            {header: "cancomplete", width: 20, sortable: true, dataIndex: 'cancomplete'},
            {header: "Monday", width: 20, sortable: true, dataIndex: '0', cls : 'suppresspadding mon',renderer : function(v, p, record){return '<input tsid="' + record.id + '" class="x-form-field x-form-text" unselectable="off" onFocus="this.select()" value="' + v + '">';}},
            {header: "Tuesday", width: 20, sortable: true, dataIndex: '1', cls : 'suppresspadding tue',renderer : function(v, p, record){return '<input tsid="' + record.id + '" class="x-form-field x-form-text" onFocus="this.select()" value="' + v + '">';}},
            {header: "Wednesday", width: 20, sortable: true, dataIndex: '2', cls : 'suppresspadding wed',renderer : function(v, p, record){return '<input tsid="' + record.id + '" class="x-form-field x-form-text" onFocus="this.select()" value="' + v + '">';}},
        ])
    })

何か案は?

4

4 に答える 4

0

参考までに:別の方向にそれを行うには、つまり。要素をテキスト選択不可にするには、すべてのブラウザーで動作するはずのExt.Element unselectable() 関数を使用します。

たとえば、ウィジェットではthis.el.unselectable().

于 2009-09-01T11:20:08.563 に答える
0

ExtJS には、この問題に対する組み込みのソリューションであるEditable Gridがあります。通常のグリッドとして機能しますが、特定の列を編集可能にするオプションを提供します。レンダラーをオーバーライドすると、列内の特定の行のみを編集可能にすることもできます。

于 2009-06-15T15:06:57.760 に答える
0

設定してみてください:

tsGrid.getView().dragZone = null; (or empty object)

Ext.grid.GridDragZone組み込みのグリッド ドラッグ アンド ドロップ機能の詳細については、を参照してください。これにより、入力内のテキストを選択できなくなると思われます。

于 2009-06-15T17:33:44.380 に答える