2017-08-08 7 views
0

extjs 6.5.1で最新のツールキットを使用しています。 グリッドセル内のレンダラープロパティを使用してhtmlを使用したいとします。レンダラーは単に'<a>...</a>'を返しますが、これを使用するとhtmlコードがエンコードされ、セルでリンクの代わりに'<a>...</a>'が表示されます。 このスレッドの回答に関しては、 "encodeHtml"がfalseになっているセルプロパティが必要ですが、セルプロパティを追加するとレンダラーはもう実行されません(EncodeHtmlを使用しても)レンダラープロパティはありません。 レンダラープロパティをもう使用できないのはなぜですか?extjsレンダラーが実行されていません

HERESに私のコード:あなたが最初の場所で

cell: { 
    xtype: 'textcell' 
} 

を指定するため

{ 
    xtype: 'gridcolumn', 
    renderer: function(value, record, dataIndex, cell, column) { 
     console.log('hello world'); 
     return '<a>...</a>'; 
    }, 
    width: 30, 
    text: '...', 
    cell: { 
     xtype: 'textcell', 
     encodeHtml: false 
    } 
} 

What it looks like without encodeHtml

答えて

0

この動作があります。削除するだけで、rendererはHTMLを返すことができます。これは動作するはずです:

{ 
    xtype: 'gridcolumn', 
    renderer: function(value, record, dataIndex, cell, column) { 
     console.log('hello world'); 
     return '<a>...</a>'; 
    }, 
    width: 30, 
    text: '...' 
} 

少なくともidが、私は特殊なフォーマットを生成するHTMLを返すrenderer Sを使用する私のアプリケーションで行います。 gridcell:あなたが何かをあなたのコードには表示されませんでしたので、cellプロパティを指定する必要がある場合

は、デフォルトcellxtype代わりに使用します。

+0

必要であるencodeHtmlプロパティのcellプロパティが必要です。そうしないと、レンダラーはリンクの代わりにセルに ' ... 'と表示されるプレーンテキストを返します。 Sencha Architectを使用しているので、xtypeをgridcellに変更することはできません。 –

+0

私はxtypeをコードを操作することによって手動でgridcellに変更することができました。助けてくれてありがとう! –