Extjs定时操作

查看api可知:

// 启动一个简单的时钟任务,每秒执行一次更新一个

div var task = {

  run: function(){
      Ext.fly(‘clock‘).update(new Date().format(‘g:i:s A‘));
  },
  interval: 1000 //1秒

}

Ext.TaskManager.start(task);

 1,Extjs如何隔一段时间操作一次

可以看出task是一个 var,通过设置interval隔一段时间操作一次

2,实现的功能效果图:

view层代码:

 8 Ext.define(‘ExtApp.view.StudentMonitor‘ , {
 9     extend : ‘Ext.grid.Panel‘ ,
10     id : ‘StudentMonitorGrid‘ ,
11     xtype : ‘StudentMonitor‘ ,
12     store : ‘StudentMonitor‘ ,
13     draggable:false, //设置为false则禁用拖拽改变列顺序、
14     columnLines:true,//添加列的框线样式
15     viewConfig: {
16         stripeRows:true //True来实现隔行换颜色
17     },
18     tbar : [{
19         xtype : ‘form‘,
20         width : ‘100%‘,
21         id : ‘FormMonitor‘,
22         items : [{
23             xtype : ‘container‘,
24             padding : 5,
25             flex : 2,
26             layout : {
27                 type : ‘hbox‘
28             },
29             items : [{
30                 xtype : ‘button‘,
31                 id : ‘btnOnMonitor‘,
32                 text : ‘打开学生监控‘
33             },{
34                 xtype : ‘button‘,
35                 id : ‘btnOffMonitor‘,
36                 text : ‘关闭学生监控‘
37             },{
38                 padding:5,
39                 xtype:‘container‘,
40                 flex:1,
41                 anchor:‘100%‘,
42                 layout:{
43                     type:‘hbox‘,
44                     pack:‘end‘
45                 },
46                 items:[{
47                     xtype:‘button‘,
48                     id:‘btnEmptyMonitor‘,
49                     text:‘全部清空‘
50                 }]
51             }]
52         }]
53     }],
54     columns : [
55         //{xtype:‘rownumberer‘,text:‘序号‘,flex:1,    align:‘center‘},
56         {text:‘账户ID‘ , flex:1 , align:‘center‘ , dataIndex:‘userCode‘},
57         {text:‘用户姓名‘ , flex:1 , align:‘center‘ , dataIndex:‘userName‘},
58         {text:‘年级‘ , flex:1 , align:‘center‘ , dataIndex:‘gradeName‘},
59         {text:‘时间‘ , flex:2 , align:‘center‘ , dataIndex:‘time‘    },
60         {header: "测试记录", align:"center",flex:2,
61             renderer:function(value){
62                    return ‘<font size="3" color="red">该同学已经5分钟没有操作屏幕</font>‘;
63                }
64         },
65         {xtype: ‘actioncolumn‘ , //这里是放按钮的地方
66          header: ‘操作‘ ,
67          width: 50 ,
68          flex : 1 ,
69          align:‘center‘,
70          items: [{
71              icon : ‘images/user_delete.png‘  ,   //删除图标
72             tooltip : ‘删除账户‘ ,
73             handler : function(grid, rowIndex, colIndex){
74                 console.log(rowIndex);
75                 var store = grid.getStore();
76                 console.log(store.getAt(rowIndex));
77                 store.removeAt(rowIndex);
78                 grid.updateLayout();
79            }
80         }]
81     }],
82     dockedItems:[{
83         xtype: ‘pagingtoolbar‘,
84         store : ‘StudentMonitor‘ ,   // GridPanel中使用的数据
85            dock: ‘bottom‘,
86           displayInfo: true
87     }]
88
89 });

3,如何删除store为本地grid的一行?

通过grid带的函数handler可以找到rowIndex,通过Store.removeAt(rowIndex);

controller层代码:
 1 onMonitor:function(btn,event){
 2         var grid=Ext.getCmp(‘StudentMonitorGrid‘);
 3         var store=this.getStore(‘StudentMonitor‘);
 4         var pageBar = grid.down(‘pagingtoolbar‘);
 5         pageBar.moveFirst();
 6         task={
 7             run:function(){
 8                 Ext.Ajax.request({
 9                     url: ‘getMessages.action‘,
10                     callback:function(options,success,response){
11                         console.log(response);
12                         console.log(response.responseText);
13                         console.log(Ext.decode(response.responseText));
14                         console.log(Ext.decode(response.responseText).rows);
15                         var data = Ext.decode(response.responseText).rows;
16                         for(var i in data){
17                             console.log(data[i]);
18                             store.add({
19                                 userCode:data[i].userCode,
20                                 userName:data[i].userName,
21                                 time:data[i].time,
22                                 gradeName:data[i].gradeName
23                             })
24                         }
25                     }
26                 })
27             },
28             interval:1000
29         };
30         Ext.TaskManager.start(task);
31        } ,32  var task;


4,Extjs中decode使用
通过把response打印出来,可以看出我们需要的是responseText,由于返回的是一个Jason格式字符串
我们需要使用decode,可以看api:decode( String json, Boolean safe ) : Object,,传入是一个Jason,出来是个object
通过打印 console.log(Ext.decode(response.responseText)); 我们发现,返回了"rows"和"results",我们取得rows,返回的是是一个数组,通过 for(var i in data)取到数组里面的值

5,extjs怎样在gird中添加一行?
store.add()
参考资料:http://blog.csdn.net/itlwc/article/details/7868626

var record = store.getAt(index);

store.add(

  new MyRecord({

name : ‘lwc‘,

age : 18

})

);

时间: 2024-10-13 05:37:59

Extjs定时操作的相关文章

extjs gridpanel 操作行 得到选中行

extjs gridpanel 操作行 得到选中行的列 在Extjs 3.2.0上适合 var model = grid.getSelectionModel(); model.selectAll();//选中所有行 model.selectFirstRow();//选中第一行 model.selectLastRow([flag]);//选中最后一行,flag为正的话保持当前已经选中的行数,不填则默认false model.selectNext();//选中下一行 model.selectPrev

ExtJS定时和JS定时

ExtJS定时 //定时刷新待办事宜状态 var task={ run:function(){ //执行的方法或方法体 }, interval:5*60*1000 //5分钟 } //定时启动 Ext.TaskManager.start(task); //定时停止 Ext.TaskManager.stop(task); JS定时 <script type="text/javascript"> var print = function () { //执行的方法体 alert(

Extjs DOM操作的几个类

Extjs提供了非常完善的DOM操作方法,可以方便的操作DOM.另外Extjs还可以方便的查询DOM元素,并把这些DOM元素封装成Ext.Element对象,通过Element对象我们可以操作DOM元素.下面来看一下Extjs操作DOM的几个类: Ext.Element .Ext.DomHelper.Ext.DomQuery三个支柱性库. Extjs目前的最新版本是Extjs5,起飞网提供了最新的extjs5教程,欢迎访问. Ext.Element Ext.Element.get()快捷方式Ex

android定时操作

Timer: 代码: Timer timer = new Timer(); timer.schedule(new TimerTask() { @Override public void run() { //你要做的事... } }, 0, 1000);//0秒后运行.每1秒运行一次 timer.cancel();//取消操作 简写代码: new Timer().schedule(new TimerTask() { @Override public void run() { //你要做的事...

C# 创建Windows服务。服务功能:定时操作数据库

一.创建window服务 1.新建项目-->选择Windows服务.默认生成文件包括Program.cs,Service1.cs 2.在Service1.cs添加如下代码: System.Timers.Timer timer1;  //计时器 public Service1() { InitializeComponent(); } protected override void OnStart(string[] args)  //服务启动执行 { timer1 = new System.Time

关于linux crontab定时操作oracle不执行的问题解决方案

问题描述:启动定时任务对oracle表进行操作,但是手动执行脚本无问题,定时任务执行无结果不反馈消息 解决方案:以centos7为例吗,首先确定脚本可手动执行,然后检查/var/log/cron下的日志,看定时任务是否启动:若没有启动则检查定时任务,若启动则检查/var/mail/oracle看有没有报错: 一般报错问题:是环境变量的问题:/etc/crontab 查看crontab环境变量:env查看系统环境变量 解决方案:在脚本首页增加source /home/oracle/.bashrc(

sleep 做挂在服务器定时操作功能

<?php //关闭浏览器后,程序能继续在后台跑,这种情况下需要用到ignore_user_abort()函数 ignore_user_abort(true); set_time_limit(0); file_put_contents("heh.php","等20秒后,查看界面,还会有信息显示"); sleep(20); file_put_contents("heh.php","***********************20秒

linux延时与定时操作

1.at       ---系统延迟任务发起命令 at time>command           ---任务指令>ctrl+d            ---发起任务 at -l              ---列出延时任务Id at -r id           ---删除改id任务 at -m              ---让无输出的命令产生邮件 at -M              ---让有输出的命令不产生邮件 at -c id           ---查看此id延迟任务的执行

线程进行定时操作

(1)首先声明Timer变量: //一定要声明成局部变量以保持对Timer的引用,否则会被垃圾收集器回收! private System.Threading.Timer timerClose; (2)在上述自动执行代码后面添加如下Timer实例化代码: // Create a timer thread and start it timerClose = new System.Threading.Timer(new TimerCallback(timerCall), this, 5000, 0);