原文:Top Support Tips

Kevin Cassidy:Grid水印

Ext JS的Grid是一个便于在布局中显示信息的伟大工具。有些用户可能会希望将这些信息打印为会议资料或宣传材料,而且会希望在打印的时候,能添加水印以便进行版权保护、保密或作为品牌的一种方式。

这个很容易实现,只要在Ext JS的Grid中为它指定一个样式就行了,而这只需要一些简单的CSS技巧。

实现这种效果的关键是修改单元格的样式,并在Grid中插入不透明且不会遮盖Grid内容的背景。

要做到这一点,首先是创建一个新的样式类,例如,样式类的名称为“watermark”,并将它应用到Grid的cls配置项:

cls: ‘watermark’

现在可以开始定义CSS来创建水印效果了。

默认情况下,Grid的单元格的背景是白颜色,第一步要做的就是修改单元格的背景,让它是透明的。要实现这个,要先定义一个包含“watermark”类的CSS选择权,以便让Grid的单元格透明:

.watermark .x-grid-item {
background: transparent !important;
}

下一步就是创建水印:

.watermark .x-grid-body:before {
content: ' ';
display: block;
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
opacity: 0.1;
background: url(http://url.to.watermark.jpg) center !important;
background-size: cover !important;
}

上门的样式会在Grid的主体前插入内容,并将插入内容完全覆盖Grid的内容。元素中的内容是空的,且应用了背景图片,背景突破被设置为居中显示,且完全填充整个元素。上述的不透明度被设置为了0.1(10%),这个可根据需要自行调整。

注意:由于浏览器的不同,以上的不透明度和背景图片属性(尤其是旧版本的IE)可能需要根据需要进行相应的修改。要打印背景突破可能还需要手动来调整打印选项。

Tristan Lee:类定义中的实例

时不时会有用户报告尝试去创建一个组件的实例时,会在创建附加的实例出现不知名的错误。为什么第一个实例能工作,而第二个不行呢?下面先来看看一种创建Grid比较常见的情况:

Ext.define('SimpsonGrid', {
extend: 'Ext.grid.Panel',
alias: 'widget.simpsongrid', width: 400,
height: 400,
store: {
type: 'users'
}, columns: [{
text: 'First Name',
dataIndex: 'firstname'
}, {
text: 'Last Name',
dataIndex: 'lastname'
}], plugins: [Ext.create('Ext.grid.plugin.RowExpander', {
rowBodyTpl: '<div>Row content</div>'
})] });

在这里,定义了一个简单的Grid,在Grid中,使用了RowExpand插件在第二行内显示内容。这是常见的用来显示特定记录的额外信息的方式。假设应用程序需要在不同的视图内使用该Grid的不同实例来显示数据,这就会出现问题。

RowExpander类的一个实例被应用到了SimpsonGrid类的原型,这意味着所有的SimpsonGrid类实例将会引用相同的插件实例。当尝试去展开第一个Gird实例的行主体的时候就会出现问题,这时,可以看到它应用到了第二实例。

要避免出现这类问题,需要使用一个配置对象来让框架处理实例化:

plugins: [{
ptype: 'rowexpander',
rowBodyTpl: '<div>Row content</div>'
}]

现在,每一个Grid 的实例都将拥有自己的插件实例。如果要查看共享插件实例的所出现的问题,可以查看这个https://fiddle.sencha.com/#fiddle/15fk‘>示例。

Fred Moseley:使用Sencha Cmd编译来创建生成

与大多数应用程序一样,你会使用sencha app build来编译应用程序的脚本。虽然这已经足够应付绝大多数的情况,但有时候还是需要对编译实现控制以及希望在标准处理过程外做点东西。

例如,在一个工作区内有多个应用程序,而你希望创建一个单一的app.js文件来包含所有应用程序所需的文件。又或者,你希望为这些应用程序创建一个自定义的只包含应用程序所需的框架类的框架。这时候,就可以使用sencha编译。

编译应用程序代码

以下响应文件将会为应用程序创建一个最优的生成myapp.js,且只包含应用程序所需的框架类:

compile
#comma delimited list of paths to the app folders of the
#applications you want to use to create custom framework.js
#also include any other paths you include in your applications classpath in app.json
-classpath=app,app.js #transitive/recursive union with the classes
#required by your application
union
-r
-namespace=MyAppName and #remove development mode preprocessor directives/warnings
-debug=false concat
#Compresses the source file using the YUI
-yui #Strips comments from the output file, but preserves whitespace
-strip #output filename
-out=myapp.js

可以以上这些命令来创建响应文件,假如文件名为compile.cfg,则可以使用以下命令来执行响应文件:

sencha @compile.cfg

在myapp.js文件中将包含所有应用程序所需的类。

响应文件的相关信息可查看《http://docs.sencha.com/cmd/6.x/advanced_cmd/cmd_advanced.html#Response_Files‘>Advanced Sencha Cmd guide》。

编译所需的框架类

使用exclude选项,就可以方便的通过编辑响应文件来指定只包含应用程序的源代码还是只有框架。

下面将创建一个只包含运行应用程序所需框架文件的名为framework.js的文件:

compile
-classpath=app,app.js
union
-r
-namespace=MyAppName
and #exclude the application namespace
exclude
-namespace=MyAppName and
-debug=false
concat
-yui
-strip
-out=framework.js

【翻译】Ext JS最新技巧——2016-3-4的更多相关文章

  1. 【翻译】Ext JS最新技巧——2015-1-2

    原文:http://www.sencha.com/blog/top-support-tips-january-2015?mkt_tok=3RkMMJWWfF9wsRolvqvIZKXonjHpfsX7 ...

  2. 【翻译】Ext JS最新技巧——2014-10-30

    原文:Top Support Tips Greg Barry:Ext JS 5的ExtraParams Ext JS 4同意用户直接将extraParams加入到一个链接,相似例如以下代码: Ext. ...

  3. 【翻译】Ext JS最新技巧——2015-10-21

    原文:Top Support Tips Kevin Cassidy:全宽度的字段错误信息 有考虑过让验证信息显示在表单字段的下面(msgTarget:'under'),但最后发现验证信息被压缩显示了吗 ...

  4. 【翻译】Ext JS最新技巧——2015-8-11

    原文:Top Support Tips Seth Lemmons:使用棒极了的Awesome Font Ext JS 6附带了一个新的海卫一主题,可以使用Font Awesome字体作为背景图像的图标 ...

  5. 【翻译】Ext JS最新技巧——2014-9-10

    原文:Top Support Tips Greg Barry:删除网格单元格的焦点 在Ext JS 5.0.1,添加了一些与可访问性和支持ARIA有关的显著改进.虽然鼓励使用这些新增功能,但默认样式可 ...

  6. 【翻译】Ext JS最新技巧——2014-8-13

    原文:Top Support Tips Greg Barry:新的框架. 新的文档类型(Doctype) 在Ext JS 5,只支持IE8+,因此不再古力用户使用严格的HTML文档类型.现在,推荐使用 ...

  7. 【翻译】Ext JS最新技巧

    原文:Top Support Tips Mitchell Simoens:控制滚动指示器的自动隐藏 Sencha Touch有一个跨平台的,在所有平台看起来和工作效果都一样的滚动条.两条轴(x和y,水 ...

  8. 【翻译】Ext JS最新技巧——2014-5-12

    原文:mkt_tok=3RkMMJWWfF9wsRoluazJZKXonjHpfsX77OQlXK%2B%2FlMI%2F0ER3fOvrPUfGjI4AT8NjI%2BSLDwEYGJlv6SgFS ...

  9. 【转载】《Ext JS 4 First Look》翻译之一:新特性

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:^_^肥仔John      原文地址:http://www.cnblogs. ...

随机推荐

  1. js中json字符串与json对象的相互转换

    web前端开发过程中,数据传输json是以字符串的形式传递,而js操作的是JSON对象. 一.JSON字符串转换为JSON对象 var obj = JSON.parse(str[, reviver]) ...

  2. Linux的哲学思想

    1.一切皆文件:2.单一目的的小程序:3.组合小程序完成复杂任务:4.文本文件保存配置信息:5.尽量避免捕获用户接口:6.提供机制,而非策略. 说到底Linux的哲学思想在于方便和更好的管理后台,不同 ...

  3. 浅谈Log4net在项目中如何记录日志

    一    引入背景 在软件开发周期中,无论是开发中,或是测试中,或是上线后,选择合适的工具监控程序的运行状态至关重要,只有如此,才能更好地排查程序问题和检测程序性能问题等.本篇文章主要与大家分享,如何 ...

  4. 女儿开始bababababa的发声了

    女儿八个半月,开始bababababa的发声了,而不是像以前总啊啊啊的.

  5. 72. Edit Distance(困难,确实挺难的,但很经典,双序列DP问题)

    Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...

  6. 64. Minimum Path Sum(中等, 又做出一个DP题, 你们非问我开不开心,当然开心喽!^^)

    Given an m x n grid filled with nonnegative numbers, find a path from top left to bottom right which ...

  7. C# 基础问答

    1.静态变量和非静态变量的区别? 2.const 和 static readonly 区别? 3.extern 是什么意思? 4.abstract 是什么意思? 5.internal 修饰符起什么作用 ...

  8. 工作流程,编程,调试,性能:Unity游戏开发者应该学习的20个改进技巧

    Unity 是一个备受欢迎的游戏开发平台.它的功能令人印象深刻,同时也迎合了不同的游戏开发需求.游戏开发者可以使用 Unity 创建任何类型的游戏,从世界级的 RPG 游戏到最流行的增强现实游戏 Po ...

  9. OLE:对象的类没有在注册数据库中注册

    我在网上下载了破解版的SAS9.3,用了一段时间之后,今天打开就填出一个提示框:OLE:对象的类没有在注册数据库中注册 激活该对象所需的应用程序不可用.是否用"转换--"将其转换为 ...

  10. Go 语言变量作用域

    作用域为已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围. Go 语言中变量可以在三个地方声明: 函数内定义的变量称为局部变量 函数外定义的变量称为全局变量 函数定义中的变量称为形式 ...