第三十九章 构建数据库应用程序 - 将数据绑定到表单

简介: 第三十九章 构建数据库应用程序 - 将数据绑定到表单

第三十九章 构建数据库应用程序 - 将数据绑定到表单

CSP提供了一种将对象数据绑定到HTML表单的机制。这种绑定使用标准的HTML表单和输入控件标签来定义表单,使可以轻松地使用任何HTML编辑器或设计工具来绑定表单。<csp:object>标记指定一个对象实例,属性cspbind被添加到表单和输入控件标记中,以指示它们应该如何绑定。

CSP编译器识别包含cspbind属性的表单,并自动生成代码:

  • 在适当的输入控件中显示指定对象属性的值。
  • 生成客户端JavaScript函数来执行简单的验证(如必需的字段检查)。
  • 生成客户端JavaScript函数以调用生成的服务器端方法来保存绑定对象。
  • 生成服务器端方法,验证并保存表单中的数据输入。这些方法可以使用CSP Event Broker从页面中直接调用,也可以作为表单提交操作的结果来调用它们。
  • 在表单中生成一个隐藏字段OBJID,其中包含绑定表单的对象ID值。

下面是一个绑定到Sample.Person实例的表单的简单示例。

<html>
<head>
</head>
<body>
<csp:object NAME="person" CLASSNAME="Sample.Person" OBJID="1">
<form NAME="MyForm" cspbind="person">
<br>Name:
<input type="TEXT" name="Name" cspbind="Name" csprequired>
<br>SSN:
<input type="TEXT" name="SSN" cspbind="SSN">
<br>City:
<input type="TEXT" name="City" cspbind="Home.City">
<br>
<input type="BUTTON" name="SAVE" value="SAVE" OnClick="MyForm_save();">
</form>
</body>
</html>
复制代码

本例使用<csp:object> 标记Sample.Person在类中打开的实例(在本例中,对象ID1)。此对象实例名为Person。然后,该示例将对象实例绑定到一个HTML表单,方法是向其form标记添加一个名为cspind的属性,其值为Person

该表单包含三个文本输入控件:NameSSNCity,它们分别绑定到对象属性NameSSNHome.City,方法是向它们的每个输入标记添加一个名为cspind的属性,其值是控件要绑定到的对象属性的名称。

请注意,绑定表单中使用的控件名称必须是有效的JavaScript标识符。

名称控件还有一个名为CSPREQUIRED的属性。这表示这是必填字段(必须为其赋值)。CSP编译器生成客户端JavaScript以测试用户是否为该字段提供了值。

表单上的最后一个控件是一个按钮,该按钮被定义为在单击时调用客户端的JavaScript函数MyForm_saveMyForm_save函数由CSP编译器自动生成。此函数收集表单中控件的值,并将它们发送到服务器端方法(也由CSP编译器自动生成),该方法重新打开对象实例,应用对属性所做的更改,将对象保存到数据库,并将JavaScript发送到客户端以更新表单中的值,以反映保存的内容。

请注意,我们在本文档中定义了HEAD部分。当使用绑定表单时,这是必要的,因为这是CSP编译器在处理绑定表单时可能生成的任何客户端JavaScript的位置。

按照约定,绑定表单中使用的对象的对象IDURL参数OBJID指定。 这使得绑定表单可以与预构建的页面交互,比如CSPSearch工具使用的那些页面。 要使用URL参数的值作为对象ID,请在csp:object标记中使用引用它的表达式:

<csp:object NAME="person"
CLASSNAME="Sample.Person" OBJID=#($G(%request.Data("OBJID",1)))#>


相关文章
|
17小时前
|
缓存 关系型数据库 Java
不要将数据库中的“分库分表”理论盲目应用到 Elasticsearch
不要将数据库中的“分库分表”理论盲目应用到 Elasticsearch
15 0
|
17小时前
|
存储 人工智能 NoSQL
现代数据库技术演进与应用前景分析
本文探讨了现代数据库技术的演进历程及其在各领域的应用前景。首先介绍了传统数据库的局限性,随后分析了NoSQL、NewSQL以及分布式数据库等新兴技术的特点和优势。接着探讨了人工智能、物联网、大数据等领域对数据库技术提出的新要求,并展望了未来数据库技术的发展趋势与应用前景。
|
17小时前
|
存储 监控 中间件
构建高性能数据库的秘诀
【5月更文挑战第13天】构建高性能数据库涉及硬件选型(如SSD、RAID)、内存与CPU优化、网络带宽保障。数据库设计要平衡规范化与反规范化,合理使用索引,考虑分区和分片技术。定期备份恢复、监控日志、维护和参数调优是管理关键。使用内存数据库、列式存储、分布式数据库和中间件能进一步提升性能。综合优化可打造稳定高效的数据库系统,支持企业成功。
|
17小时前
|
移动开发 前端开发 数据库
几种经典的支持数据库的表单设计器参考
几种经典的支持数据库的表单设计器参考
|
17小时前
|
SQL 人工智能 自然语言处理
利用LangChain构建的智能数据库操作系统
LangChain库简化了数据库与AI结合,通过LLM将自然语言转为SQL语句进行查询和数据分析。它降低了数据查询的门槛,支持创建基于数据库的问答机器人和数据分析面板。实战案例展示了如何使用LangChain进行查询并以自然语言形式返回结果。通过限制表名,可处理大量数据。总结:掌握LangChain在数据库操作、查询及结果自然语言转换的应用。
12 0
|
17小时前
|
存储 NoSQL 搜索推荐
探索新一代数据库技术:基于图数据库的应用与优势
传统关系型数据库在处理复杂的关系数据时存在着诸多限制,而基于图数据库的新一代数据库技术则提供了更为灵活和高效的解决方案。本文将深入探讨图数据库的核心概念、应用场景以及与传统数据库相比的优势,带领读者一窥未来数据库技术的发展趋势。
|
17小时前
|
SQL 存储 Oracle
C#利用IDbCommand实现通用数据库脚本执行程序
C#利用IDbCommand实现通用数据库脚本执行程序
|
17小时前
|
存储 运维 Kubernetes
多态关联在数据库设计中的应用和解决方案
多态关联在数据库设计中的应用和解决方案
18 0
|
17小时前
|
存储 算法 数据库
矢量数据库在图像识别与检索中的应用实践
【4月更文挑战第30天】本文探讨了矢量数据库在图像识别与检索中的应用,通过特征提取(如SIFT、SURF)、编码和相似度度量实现快速识别。在图像检索流程中,经过预处理、特征提取和编码后,矢量数据库用于查询相似特征,排序后展示给用户。实际案例显示,矢量数据库能提升电商平台的商品图像搜索效率和用户体验。随着技术发展,这一领域应用前景广阔。
|
17小时前
|
机器学习/深度学习 搜索推荐 数据库
矢量数据库的未来发展趋势:新技术与应用展望
【4月更文挑战第30天】随着AI和机器学习的发展,矢量数据库在处理非结构化数据方面的重要性日益增强。预测到2028年,全球矢量数据库市场将从2023年的15亿美元增长至43亿美元。未来趋势包括:并行计算与分布式架构提升处理能力,硬件加速技术(如TPU和昇腾芯片)提高性能,自适应索引机制优化查询效率。应用领域将拓展至NLP、图像视频分析和推荐系统,为各行业带来更多创新和价值。