分析AJAX DataSet与DBControl数据感应机制<o:p></o:p>
实现原理<o:p></o:p>
通过注册数据感应对象列表,在DataSet发生相应事件时,通知所有注册的数据感应对象,数据感应对象在得到通知时,根据通知的消息号与数据,进行相关执行比如刷新显示等。
消息号<o:p></o:p>
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
程序分析<o:p></o:p>
以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
}
}
|
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
<o:p> </o:p>
分享到:
- 2006-12-27 14:38
- 浏览 1698
- 评论(0)
- 论坛回复 / 浏览 (0 / 2375)
- 查看更多
相关推荐
twitter数据流数据(数据集dataset).ziptwitter数据流数据(数据集dataset).ziptwitter数据流数据(数据集dataset).ziptwitter数据流数据(数据集dataset).ziptwitter数据流数据(数据集dataset).ziptwitter...
CrackForest-dataset 裂纹检测数据集
【RSOD-Dataset遥感图像数据集】是一个专门针对遥感图像分析与处理的重要资源,它为研究者和开发者提供了大量的遥感图像样本,用于开展目标检测、分类、变化检测等任务。遥感图像是一种从地球上空通过卫星或航空器...
在C#编程中,`DataSet`是一个非常重要的数据容器,它可以容纳多个`DataTable`,每个`DataTable`又包含多行`DataRow`和多列`DataColumn`的数据。当我们需要处理或展示`DataSet`中的所有数据时,遍历就显得尤为重要。...
`DataSet`可以理解为一个轻量级的数据库,它不依赖于任何特定的数据库系统,允许你在应用程序中进行数据的查询、更新和分析。本篇文章将深入探讨如何在C#高级编程中使用`DataSet`来显示和操作数据。 `DataSet`主要...
3. 在Ajax的`success`回调中,解析返回的Dataset,并将数据填充到下拉框中。 这个过程不仅提高了用户体验,还降低了服务器与客户端之间的通信成本,因为只有在用户输入时才会发起请求,而不是一次性加载所有数据。
《悉尼城市物体数据集——深度学习与计算机视觉的宝贵资源》 悉尼城市物体数据集(Sydney Urban Objects Dataset)是一个广泛应用于计算机视觉和深度学习领域的重要数据资源。它包含了丰富的图像信息,专为识别和...
本案例中的"制作亚洲人脸数据集FaceDataset"是一个专注于亚洲人脸部特征的数据集合,它被广泛用于面部识别、表情分析、年龄估计等应用。下面将详细讨论相关知识点。 1. 数据集的构建:创建一个数据集通常涉及数据...
动物数据集Animal Dataset。 猫狗熊猫图像分类数据集。每类数据集包含猫、狗和熊猫各1000张图片,总共3000张图片。
这个步骤非常关键,因为它确保了数据库中的数据与`DataSet`中的数据保持一致。 #### 使用AcceptChanges方法保持数据一致性 当数据库更新后,还需要调用`DataSet`的`AcceptChanges`方法,以清除所有的更改标记。...
在 Windows 程序中,DataSet 可以看作是数据库的一个本地对象,应用程序通过数据适配器与 DataSet 进行数据交换,然后 DataSet 本身在与数据库进行数据操作。创建 DataSet 可以通过右击项目名称,然后选择【添加】→...
Cardiac MRI Dataset 是心房医疗影像数据集,数据均来自于心脏病患者,其包括左心室心内膜和外膜的图像标注,涵盖 33 位患者的 7980 张图像。 该数据集由 IBM Research – Almaden 的 Brain-Inspired Computing ...
INRIA Dataset 是一个行人检测数据集,其图片库被分为只有车、只有人、有车有人和无车无人四个类别,其中正样本为 PNG 格式,负样本为 JPG 格式,该数据集包含具有相应注释文件的原始图像和标准化格式图像两类。...
"dataset" 是英文版的标签,与中文标签“数据集”意义相同,强调了该资源的性质。"webservice" 指的是基于互联网的、可重复使用的软件模块,通过标准接口与其他服务交互。"webservice" 这个标签表明 wsdream-dataset...
总结来说,criteo dataset的CTR预测任务是机器学习领域的重要研究方向,它涉及到丰富的数据处理技巧、模型选择和优化策略,以及对大规模数据的高效处理能力。通过深入理解和实践这个数据集,我们可以不断提升在广告...
### 将数据从DataSet写入XML文件 在.NET框架中,`DataSet`是用于存储从数据库获取的数据的一个对象。为了方便地将数据保存为XML格式,可以利用`DataSet`对象的功能将其导出到XML文件中。这对于数据交换、备份或进行...
在 .NET 中,Dataset 是一个内存中的数据库表示,可以处理多表数据,并支持添加、删除、修改记录以及与数据库的交互。在 Delphi 中,虽然没有直接的 Dataset 对应物,但可以通过 TClientDataSet 或 TDBDataSet 类来...
逻辑回归、感知机、深度神经网络、支持向量机等模型训练数据。
光伏组件elpv-dataset数据集是一个专门为深度学习设计的开源资源,主要用于训练光伏组件缺陷识别模型。这个数据集对于太阳能产业至关重要,因为它可以帮助提高太阳能电池板的维护效率和发电效率,减少因组件缺陷导致...