ExtJS常用方法

定时任务

updateTask = {
         run : function() {
                 updateUserList();
         },
         interval : 2000         // 2 second
}
Ext.TaskManager.start(updateTask);

store 通过 proxy 代理 load 追加数据方式

通过 load 函数的参数控制。如果想实现表格中的最大数据量,可以定时追加数据,当达到最大值时,移除比较旧的数据就行啦

options定义为
{
...
add :Boolean 追加还是更新
...
}

设置DOM元素的显示和隐藏

var elemUncompleted = Ext.get('uncompleted');
elemUncompleted.setDisplayed(true);

注意多次设定同一个元素时,需要用 Ext.get 而不是 Ext.fly, 用后种方法的话,会在第二次设置元素时出现问题。 还可以尝试 elemUncompleted.setStyle('display', 'none'); 等等

趋势图的步长问题

当设置时间范围为 (4.11-4.21),步长为2天时,不会出现NaN的情况, 但只出现起点和结束点的时间说明,这个步长到底是代表什么意思呢? 

最终解决办法,设置 step 的值为 false 即可

设定Ajax请求为同步方式

设定ExtJS 的Ajax请求为同步方式,即只有当前一个请求数据返回之后才执行下一个请求

Ext.Ajax.request({
        url : 'getNameListTransient.action',
        async: false,
...
)};

使用DateTimeFieldBetween控件中遇到的一些问题

因为参照网页中的示例,下载了几个文件,按照说明将每个文件都放好。结果参考的网页示例是有问题的。

正确的方法应该是: 将一个 DateTime.js 文件 ext-4.0.7-gpl/src/form/field/ 文件夹下, 将另外一个 DateTime.js 放在 ext-4.0.7-gpl/src/picker/ 目录下

同时,放在 resource/js 目录下的 dateTimeField.js 是同一个文件,不需要的。

最后是一位同事找到了这个问题。交流始终有益的。

ext中分页时,PagingToolbar中显示‘page()of’ 怎样变成中文?

me.bbar = Ext.create('Ext.PagingToolbar', {
    store: me.store,
    displayInfo: true,
                beforePageText: "第",
                afterPageText: "页,共 {0} 页",
    displayMsg: '第{0} - {1}条 共{2}条',
    emptyMsg: "没有符合条件的记录"
});

表格proxy的使用

proxy: {
        // type: 'ajax',
        // url: 'resources/json/HistoryGridData.json',
    type: 'jsonp',
        url: 'http://127.0.0.1:9090/getHistoryData.action',
        extraParams: {
                dataIds: dataIds,
                startTime: 1363403340000,
                endTime: 1363403465000
        },
        reader: {
                type: "json",
                root: 'baseDataList',
                totalProperty: 'totalCount'
        }
}

画图初始化时,确定线的条数

//config中
colors: [ "#FF0000", "#115fa6","#a61120", "#ff8809", "#ffd13e", "#a61187", "#24ad9a", "#7c7474", "#a66111"],


// initComponent: function() 中
me.series = [];

// 添加线条
for (var i = 0; i < me.maxFieldY; i++) {
        var yField = 'y';
        
        yField = yField + i;
        
        me.series.push({
                type: 'line',
                xField: 'x',
                yField: yField,
                showMarkers: false,
                axis: ['left', 'top'],
                style: {
                        stroke: me.colors[i],
                        'stroke-width': 0
                },
                tips: {
    trackMouse: true,
    width: 100,
    height: 28,
    layout: 'fit',
                        renderer: function(storeItem, item) {
                                this.setTitle('(' + storeItem.get('x') + ', ' + storeItem.get('y0') + ')');
                        }
                }
        });

}

在画图数据源变化时,不更新到图形中

me.store.suspendEvents: 传入参数false,丢弃了所有的事件。暂停该对象对所有的事件处理

如果需要恢复时,调用 me.store.resumeEvents();

你可能感兴趣的:(ExtJS常用方法)