第三十八章 构建数据库应用程序 – 处理表单提交请求

除了在表单中显示对象的内容外,前面的示例还在用户通过单击Save提交表单时保存对对象的更改。
它的工作原理如下。

当表单被提交时,控件的值(包括启动提交的按钮)被发送回服务器。
在本例中,表单被提交到最初为页面提供服务的同一CSP页面。
通过设置表单ACTION属性的值,可以提交到不同的页面。

CSP服务器将提交的值放在%request对象数据属性中。页面开始处的服务器端脚本通过测试是否定义了请求参数Save(submit按钮的名称),来测试页面是否响应提交请求。这只能定义为提交请求的结果。如果这是一个提交请求,则脚本将从表单提交的值复制到对象的适当属性中,并调用对象:

 If ($Data(%request.Data("SAVE",1))) {
    // If "SUBMIT" is defined, then this is a submit
    // Write the posted data into the object and save it
    Set person.Name = $Get(%request.Data("Name",1))
    Set person.SSN = $Get(%request.Data("SSN",1))
    Set person.Home.City = $Get(%request.Data("City",1))
    Do person.%Save()
 }

csp:object tag

前面例子中的一些行为是由<csp:object>标签自动提供的。<csp:object>标记生成创建或打开在csp页面上使用的对象实例所需的服务器端代码,以及关闭它的代码。

<csp:object NAME="person" CLASSNAME="Sample.Person" OBJID="1">
<!-- Now use the object -->
Name: #(person.Name)# <br>
Home Address: #(person.Home.Street)#, #(person.Home.City)# <br>

在这种情况下,<csp:object>标记打开CLASSNAME类的对象,对象ID1,并将它赋给变量person。在实际应用中,对象ID%request对象提供:

<csp:object NAME="person" CLASSNAME="Sample.Person"
OBJID='#($Get(%request.Data("PersonID",1)))#'>
Name: #(person.Name)# <br>
Home Address: #(person.Home.Street)#, #(person.Home.City)# <br>

表达式为:

$Get(%request.Data("PersonID",1))

引用URL参数PersonID

带有空OBJID属性的< csp:object >标记创建一个指定类的新对象:

<csp:object NAME="person" CLASSNAME="Sample.Person" ObjID="">

使用<csp:object>标记相当于包含显式创建对象实例的服务器端脚本。

原文地址:http://www.cnblogs.com/yaoxin521123/p/16861892.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性