在运行时启用/禁用缓冲渲染

Ale*_*der 1 extjs

我有一个使用缓冲渲染器的网格。

对于打印,我将网格DOM复制到新窗口中,然后将其发送到打印机。为此,必须完全渲染DOM,但对于带缓冲的渲染器,则不是。

如果需要的话,我将完全禁用缓冲的渲染器,但是由于只有少数用户使用打印功能,所以我宁愿不使用它。

是否有可能在获取DOM之前暂时关闭bufferedRenderer,然后再将其重新打开?

Sal*_*loo 5

我不确定它对您有什么帮助,但是我通过在运行时增加视图大小来完成了类似的操作。

假设您已使用此配置缓冲了渲染器:

ptype : 'bufferedrenderer',
trailingBufferZone : 20, 
leadingBufferZone : 50
Run Code Online (Sandbox Code Playgroud)

因此,可以动态地通过获取插件的引用并使用setViewSize(newSize)方法在运行时设置视图大小。

例如:

var dd=Ext.ComponentQuery.query("#ExampleTreePanel")[0];
var bufferedRendererPlugin = dd.plugins[0];
bufferedRendererPlugin.setViewSize(100000);
Run Code Online (Sandbox Code Playgroud)

我们可以假设这么大的尺寸是一个很大的数字,这样DOM将被完全加载,并且可以将其打印出来。同样,您可以通过将视图设置为较小的数字来调整视图的大小。

bufferedRendererPlugin.setViewSize(115); 
Run Code Online (Sandbox Code Playgroud)