分析AJAX WebShop DataSet与DBControl数据感应机制
来源:互联网 发布:龙之信条帅哥捏脸数据 编辑:程序博客网 时间:2024/04/27 20:56
分析AJAX WebShop DataSet与DBControl数据感应机制
实现原理
通过注册数据感应对象列表,在DataSet发生相应事件时,通知所有注册的数据感应对象,数据感应对象在得到通知时,根据通知的消息号与数据,进行相关执行比如刷新显示等。
消息号
modify:12
open:0
refresh:5
close:7
move record:3
append:1
delete:2
firedatachange:6
post:13
cancel:9
apply:8
fieldvalue firechange:4
notify lookup dataset:11
程序分析
以DBEdit为例,首先DBEdit设置属性DataSet或SetDataSet,将调用LinkObj将DBEdit注册到数据感应对象列表,这个列表实际是一个数组,在DataSet发生相关事件时,将调用Notify通知数据感应对象列表中的所有对象,而所有的数据感应对象都有一个接口实现HandleMessage,用于在DataSet中调用,看一下Notify的实现就清楚了:
DataSet.prototype.Notify=function(act,recno,p){var os=this.linkobjs;if(!os||this.AutoControl==false)return;for(var j=0;j<os.length;j++)if(os[j].HandleMessage)os[j].HandleMessage(this,act,recno,p);}
然后看看DBEdit的HandleMessage做了些什么,见下面实现,无非是刷新显示数据,呵呵,就这么简单。
function DC_handlemessage(sender,msg,recno)
{
if(msg!=6&&msg!=12)
this.Refresh();
}
function DC_refresh()
{
var v,f;
if(this.DataSet.Active){
f=this.DataSet.Fields.Field[this.DataField];
if(!f)jcl_err(this.Name+'.DataField:'+this.DataField+Err_NoField);
if(f){
this.readOnly=f.ReadOnly;
v=f.GetValue();
if(v==null)v='';this.value=v;
if(this.Type=='span')this.innerHTML=v;//DBLabel
if(this.Type=='checkbox'){
if(this.CheckedValue == v){
this.checked=true;
this.defaultChecked=true;
}
else{
this.checked=false;
}
}
}
}
else{
this.value='';
if(this.Type=='span')this.innerHTML='';//DBLabel
}
}
- 分析AJAX WebShop DataSet与DBControl数据感应机制
- 分析AJAX WebShop DataSet与DBControl数据感应机制
- AJAX WebShop 3正式版发布
- 数据分析--iris dataset
- ajax获取dataset数据 无刷新
- 理解DataSet的数据缓存机制
- 转载:ajax.net与dataset等
- Entity Framework DataSet注入数据分析
- 开发TabSet AJAX控件并集成到WebShop IDE
- 向大家介绍目前最新的AJAX IDE-JoyiStar WebShop
- AJAX旗舰产品JoyiStar WebShop的发展动向
- JoyiStar AJAX WebShop即将推出3.0体验版
- JoyiStar AJAX WebShop 3 Beta版开始提供下载
- JoyiStar AJAX WebShop 3 Beta2正式发布并提供下载
- jdbc连接方式开发ajax webshop的后台服务
- joyistar webshop:杀入国际市场的国产ajax开发工具
- dataset 与 datatable 中复制数据
- SqlDataReader 与 DataSet读取sql中的数据
- JSP显示在线人数代码服务
- 使用BHO定制Internet Explorer浏览器
- jsp在线人数统计
- EXCEL 判断一个单元格中是否有图片
- JMail组件的使用
- 分析AJAX WebShop DataSet与DBControl数据感应机制
- 典型Web服务器
- netcat(瑞士军刀)的使用
- ibatis+spring报错总结
- 中移动TD招标中兴夺46.78%份额 大唐36.68%
- Hibernate批量查询:Session.find/iterate
- Finding crash information using the MAP file 2
- 为什么保护模式跳回实模式要选择一个NormalSelector
- 班车终于开到了家门口