这是别人写的一个打印的小插件,非常好用,仅需在GridPanel(要有title)的构造参数中加上这么一行:
plugins: [Ext.ux.plugins.Print]
另外,在火狐中打印多页时有些不正常,把PrintPreview.htm中的css文件去掉就可以了。
我们来分析一下它的实现原理,首先我们在PrintFriendly.js找到这行代码:
o.tools.push({id: 'print', handler: this.printGrid, scope: this});
这里的o指代GridPanel对象,所以我们去翻GridPanel的API,看看其对tools属性的解释,解释如下:
在图中看到id是print的了吧,现在我们明白了,插件就是将handler: this.printGrid绑在了GridPanel的title的预定义的print小按钮上了。