`
try1try
  • 浏览: 11462 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

分析AJAX DataSet与DBControl数据感应机制

阅读更多

分析AJAX DataSetDBControl数据感应机制<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设置属性DataSetSetDataSet,将调用LinkObjDBEdit注册到数据感应对象列表,这个列表实际是一个数组,在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);}

       然后看看DBEditHandleMessage做了些什么,见下面实现,无非是刷新显示数据,呵呵,就这么简单。

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>

分享到:
评论

相关推荐

    twitter数据流数据(数据集dataset).zip

    twitter数据流数据(数据集dataset).ziptwitter数据流数据(数据集dataset).ziptwitter数据流数据(数据集dataset).ziptwitter数据流数据(数据集dataset).ziptwitter数据流数据(数据集dataset).ziptwitter...

    CrackForest-dataset 裂纹检测数据集

    CrackForest-dataset 裂纹检测数据集

    RSOD-Dataset遥感图像数据集

    【RSOD-Dataset遥感图像数据集】是一个专门针对遥感图像分析与处理的重要资源,它为研究者和开发者提供了大量的遥感图像样本,用于开展目标检测、分类、变化检测等任务。遥感图像是一种从地球上空通过卫星或航空器...

    C#遍历DataSet中数据的几种方法总结

    在C#编程中,`DataSet`是一个非常重要的数据容器,它可以容纳多个`DataTable`,每个`DataTable`又包含多行`DataRow`和多列`DataColumn`的数据。当我们需要处理或展示`DataSet`中的所有数据时,遍历就显得尤为重要。...

    C#高级编程:显示DataSet类中的数据(图)

    `DataSet`可以理解为一个轻量级的数据库,它不依赖于任何特定的数据库系统,允许你在应用程序中进行数据的查询、更新和分析。本篇文章将深入探讨如何在C#高级编程中使用`DataSet`来显示和操作数据。 `DataSet`主要...

    ajax实现动态从数据库模糊查询显示到下拉框中(ajax方法返回Dataset的例子

    3. 在Ajax的`success`回调中,解析返回的Dataset,并将数据填充到下拉框中。 这个过程不仅提高了用户体验,还降低了服务器与客户端之间的通信成本,因为只有在用户输入时才会发起请求,而不是一次性加载所有数据。

    Sydney Urban Objects Dataset悉尼城市物体数据集.gz

    《悉尼城市物体数据集——深度学习与计算机视觉的宝贵资源》 悉尼城市物体数据集(Sydney Urban Objects Dataset)是一个广泛应用于计算机视觉和深度学习领域的重要数据资源。它包含了丰富的图像信息,专为识别和...

    制作亚洲人脸数据集FaceDataset

    本案例中的"制作亚洲人脸数据集FaceDataset"是一个专注于亚洲人脸部特征的数据集合,它被广泛用于面部识别、表情分析、年龄估计等应用。下面将详细讨论相关知识点。 1. 数据集的构建:创建一个数据集通常涉及数据...

    动物数据集Animal Dataset

    动物数据集Animal Dataset。 猫狗熊猫图像分类数据集。每类数据集包含猫、狗和熊猫各1000张图片,总共3000张图片。

    asp.net使用DataSet数据集插入表记录

    这个步骤非常关键,因为它确保了数据库中的数据与`DataSet`中的数据保持一致。 #### 使用AcceptChanges方法保持数据一致性 当数据库更新后,还需要调用`DataSet`的`AcceptChanges`方法,以清除所有的更改标记。...

    使用数据绑定和DataSet

    在 Windows 程序中,DataSet 可以看作是数据库的一个本地对象,应用程序通过数据适配器与 DataSet 进行数据交换,然后 DataSet 本身在与数据库进行数据操作。创建 DataSet 可以通过右击项目名称,然后选择【添加】→...

    Cardiac MRI dataset 心房医疗影像数据集.7z

    Cardiac MRI Dataset 是心房医疗影像数据集,数据均来自于心脏病患者,其包括左心室心内膜和外膜的图像标注,涵盖 33 位患者的 7980 张图像。 该数据集由 IBM Research – Almaden 的 Brain-Inspired Computing ...

    INRIA Person Dataset 行人检测数据集.7z

    INRIA Dataset 是一个行人检测数据集,其图片库被分为只有车、只有人、有车有人和无车无人四个类别,其中正样本为 PNG 格式,负样本为 JPG 格式,该数据集包含具有相应注释文件的原始图像和标准化格式图像两类。...

    wsdream-dataset2

    "dataset" 是英文版的标签,与中文标签“数据集”意义相同,强调了该资源的性质。"webservice" 指的是基于互联网的、可重复使用的软件模块,通过标准接口与其他服务交互。"webservice" 这个标签表明 wsdream-dataset...

    criteo dataset(CTR数据集)part1

    总结来说,criteo dataset的CTR预测任务是机器学习领域的重要研究方向,它涉及到丰富的数据处理技巧、模型选择和优化策略,以及对大规模数据的高效处理能力。通过深入理解和实践这个数据集,我们可以不断提升在广告...

    将数据从DataSet写入XML文件

    ### 将数据从DataSet写入XML文件 在.NET框架中,`DataSet`是用于存储从数据库获取的数据的一个对象。为了方便地将数据保存为XML格式,可以利用`DataSet`对象的功能将其导出到XML文件中。这对于数据交换、备份或进行...

    Delphi 像.net Dataset一样的的数据集

    在 .NET 中,Dataset 是一个内存中的数据库表示,可以处理多表数据,并支持添加、删除、修改记录以及与数据库的交互。在 Delphi 中,虽然没有直接的 Dataset 对应物,但可以通过 TClientDataSet 或 TDBDataSet 类来...

    干菜豆数据资料——dry bean dataset

    逻辑回归、感知机、深度神经网络、支持向量机等模型训练数据。

    光伏组件elpv-dataset数据集

    光伏组件elpv-dataset数据集是一个专门为深度学习设计的开源资源,主要用于训练光伏组件缺陷识别模型。这个数据集对于太阳能产业至关重要,因为它可以帮助提高太阳能电池板的维护效率和发电效率,减少因组件缺陷导致...

Global site tag (gtag.js) - Google Analytics