- 浏览: 38566 次
- 性别:
- 来自: 成都
最新评论
-
jerry:
这个树,最大的缺憾是不能多选。
extjs4 TreePicker下拉树用法 -
pig3d2:
在编辑的时候,前台默认选中这个值,是怎么做的??楼主
extjs4 TreePicker下拉树用法 -
chen2991101:
不用加事件
extjs4 TreePicker下拉树用法 -
童梦新苑:
就是能显示出来数据, 但是不能选择; 是不是要加什么选择事件 ...
extjs4 TreePicker下拉树用法 -
chen2991101:
代码似乎没什么问题,我的这么写是没有问题的
extjs4 TreePicker下拉树用法
文章列表
突然奇想想用extjs4做一个外网项目,但是extjs4依赖的文件实在太大,光ext-all.js已经压缩后的都有1.2m,做外网的话速度非常的慢,为了提高速度可以用gzip对文件再进行压缩,最后可以让1.2m的文件压缩成300多k,这样就大大的节省的时间。
1:先使用gzip压缩文件(http://download.csdn.net/detail/chen2991101/5654201)
把gzip.ext放在一个目录下面,需要压缩的文件也要放在同目录下面,然后在cmd窗口中也要到同样的目录下面输入:“gzip 文件名” 即可,然后把后缀名修 ...
平时我们用Ext.Ajax.request来跟后台进行交互,通过ajax使用的是异步的的方式来传递,但是有些情况需要用同步的方式来进行
Ext.Ajax.request({
async : false,//添加上这个属性就能实现同步的方式
url: 'page.php',
params: {
id: 1
},
success: function(response){
var text = response.responseText;
// pro ...
extjs4一个比较好的地方就是所有的文件都能动态的生成,比如通过requires可以动态的加载js文件,但是有些加载的控件同样需要加载css文件。extjs4同样也给我们提供了方法:
Ext.util.CSS.swapStyleSheet('文件id', 'css文件路径');// 动态加载css文件
项目中需要用下拉树来展示数据,到网上搜了下没有想要的东西,有些是自己写的下拉树,官方的api也没有treeCombobx这样的东西,但是在extjs4源码包里面却有一个叫treePicker的东西,这正是官方提供的下拉树,但是api里面也没有使用的例子。网上也没有相关的用法,没办法,只有自己看源码慢慢摸索,好在最后终于摸索出来了。
{
xtype : 'treepicker',
displayField : 'text',//这个地方也需要注意一下,这个是告诉源码tree用json数据里面的什么字段来显示,我测试出来是只能写'text'才有效果
...
在treePanel或者treeGrid控件上面注册itemcontextmenu事件就是右键菜单
'#deptGrid' : {
itemcontextmenu : me.deptGrid_itemcontextmenu
}
deptGrid_itemcontextmenu : function(his, record, item, index, e) {
// 部门表的右键菜单
var me = this;
e.preventDefault();
e.stopEvent();// ...
项目有一个需求是展示一个部门信息,但是这个部门下面有可能还存在子部门,用一般的trrPanel感觉效果不是太好,在官方的api上面找到treeGrid控件正好可以满足需求,但是悲催的是把api里面的代码拷到程序里面后没有效果,根据反复的修改终于可以用了:
Ext.define('SimpleTasks.view.organize.DeptGrid', {
extend : 'Ext.tree.Panel',
xtype : 'DeptGrid',
rootVisible : false, ...
项目中需要在同一个grid中转换成不同的数据,不如有一个menu,里面有“未审核”和“已审核”两个按钮,需要点击按钮后grid中出现对应的信息,之前使用的方法是当点击按钮的时候动态的创建store,然后再调用grid.reconfigure(st);的方法把数据加载到grid里面。
今天突然想起了searchField源码里面的grid.setExtraParam();方法,才发现之前我是如此的二。可以直接用:
store.setExtraParam('method','check');
store.loadPage(1)
往后台发送一个名字为‘met ...
在extjs4中的表单验证里面虽然能够通过allowBlank : false配置控件不能为空,但是如果在控件里面输入空格的话就很轻松的骗过了验证,这显然是不合理的,我想到的解决办法是通过重写TextField控件的验证器再加一个判断空格的验证:
Ext.apply(Ext.form.TextField.prototype, {
validator : function(text) {
if (this.allowBlank == false && Ext.util.Format.t ...
如果用户页面没有关闭,重新启动tomcat后session依然有效,这样就会造成一个账号就能在两个地方同时登陆,给程序带来隐患。解决办法是在tomcat的context.xml文件里面添加:
<Manager className="org.apache.catalina.session.PersistentManager"
debug="0"
saveOnRestart="false"
maxActiveSessions="-1"
minIdleSwap="-1"
m ...
项目中有一个模块是用来管理前台的评论内容。因为前台的评论没有限制输入的内容所以有可能用户保存的是一段html代码。后台extjs4进行管理的时候如果用grid展示出来会把grid里面的布局弄乱,很不好看,这个时候就想在grid中展示评论内容的时候不要解析这个html代码,当文本一样的输出。在freemarker中只需要在展示的内容两边加上一对标签即可,所以感觉应该不是太难,不知道extjs4里面有没有配置这样的属性,在网上搜索和看官方的api文档好像都没有这样的配置,那就只有再找另外的方法,好在extjs4提供了一个Ext.htmlEncode();的方法能够不解析html代码 ...
最近看extjs4的API发现combobox还有一个比较实用的功能,就是在combobox中输入比如"四川",就会自动查询当前下拉框中有的值并补齐成“四川省”,如果下拉框中的值很多的话这个方法还是比较实用。实用的方法也特别的简单,配置两个属性就行了:
{
xtype : "combobox",
store : store,
forceSelection : true,// 只能输入下拉框的中存在的值
typeAhea ...
每次重装系统后重新配置环境后最容易碰到两种乱码的问题,就是get提交乱码和当保存数据到mysql里面时后台代码都没有乱码但是到mysql后中文全是问号。
get提交乱码的解决办法是点击eclipse左边的项目列表中的Servers->Tomcat v7.0 Server at localhost-config->server.xml文件中修改<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redi ...
项目中需要开始时间和结束时间的验证。因为需求涉及到两个时间,所以要有验证开始时间不能大于结束时间。之前对extjs4了解不够深入,所以这个验证是放在后台来完成,然后在前台弹出一个alert来提示用户“开始时间不能大于结束时间”。这样做依然用户体验不好,不能输入完后马上就提示用户,而且还会发送没必要的请求增加服务器负担。多个字段的验证就能很好的解决这个问题。但是实现也要比单个字段的验证要复杂些,除了要自定义验证外,还要自定义属性用以配置两个互相关联的日期字段:
Ext.apply(Ext.form.field.VTypes, {
// ...
extjs4自带的表单验证已经够强大了,但是有些特殊的要求还是无法满足,比如项目中的一个文本控件要求不能输入纯数字,这个需求普通的表单验证就不行了,好在extjs4提供了自定义vtype验证,通过正则表达式来判断,写法也非常的简单:
Ext.apply(Ext.form.field.VTypes, {
al : function(v) {
return !(/^[0-9]*$/.test(v));
},
alText : '不能只输入数字'
});
然后在表单里面只需要简单的添加一个vt ...