H
huawdg
Unregistered / Unconfirmed
GUEST, unregistred user!
当使用 AdapterPageProducer 时,与 AdapterForm 相关的 HTML 表单的 action 属性默认为 action="<%=Page.HREF%>",但在 HTML Result 和 HTML Script 窗格中却看不出这一点。只有在 Web 浏览器中查看 HTML 源代码时,你才会发现这一点。
因此当把 AdapterPageProducer 转换成 PageProducer 时,如果你完全按照“高级 HTML 设计”的“操作 HTML 文件中的服务器端脚本”章节所述的方法进行,则产生的 HTML 表单是没有 action 属性设置的,从而当这个表单被提交时,action 属性被默认为进入此页面时的 URL(如,假定进入此页时的 URL 为“http://hostname/pagename?ID=1”,则表单的 action="http://hostname/pagename?ID=1")。这样,就与原始的 HTML 结果(action="<%Page.HREF%>")不一样了。
在有些情况下,这将产生问题。
例如,对一个主/细表的主表的插入操作。
1. 添加一个使用 AdapterPageProducer 的 WebSnap Web 页模块。为此模块添加 ADOTableMaster(主表)、ADOTableDetail(细表),并设置它们的主/细关系。添加 DatasetAdapterMaster、DatasetAdapterDetail 组件,分别对应 ADOTableMaster 和 ADOTableDetail。再放一个 ADOConnection 组件。设置各组件的相关属性。
2. 双击 AdapterPageProducer 打开编辑框。
3. 添加一个 AdapterForm。为此 AdapterForm 添加 AdapterFieldGroup 和 AdapterCommandGroup。
4. 为 AdapterFieldGroup 添加一个字段。
5. 为 AdapterCommandGroup 添加 NewRow 和 Apply 按钮。
6. 关闭 AdapterPageProducer 编辑框。切换到页模块的 HTML 窗格,在 body 部分添加如下 HTML 语句:
<a href="<%=Page.HREF%>?ID=1">为本页加上查询参数</a><p>
至此,可以在浏览器中进行测试。
打开这样页面,点击“为本页加上查询参数”,可以看到地址栏中的地址末尾多了“?ID=1”。再点击 “NewRow”,编辑字段后点击“Apply”,一切正常。
现在,按“高级 HTML 设计”的“操作 HTML 文件中的服务器端脚本”章节所述的方法将 AdapterPageProducer 转换成 PageProducer。再进行上述测试,你会发现新添加的字段值总是 Null。
请参阅《WebSnap 中文手册》中的“高级 HTML 设计”的“操作 HTML 文件中的服务器端脚本”章节
《WebSnap 中文手册》可在 http://service.lonetear.com/delphi/folder.asp?id=37 下载
因此当把 AdapterPageProducer 转换成 PageProducer 时,如果你完全按照“高级 HTML 设计”的“操作 HTML 文件中的服务器端脚本”章节所述的方法进行,则产生的 HTML 表单是没有 action 属性设置的,从而当这个表单被提交时,action 属性被默认为进入此页面时的 URL(如,假定进入此页时的 URL 为“http://hostname/pagename?ID=1”,则表单的 action="http://hostname/pagename?ID=1")。这样,就与原始的 HTML 结果(action="<%Page.HREF%>")不一样了。
在有些情况下,这将产生问题。
例如,对一个主/细表的主表的插入操作。
1. 添加一个使用 AdapterPageProducer 的 WebSnap Web 页模块。为此模块添加 ADOTableMaster(主表)、ADOTableDetail(细表),并设置它们的主/细关系。添加 DatasetAdapterMaster、DatasetAdapterDetail 组件,分别对应 ADOTableMaster 和 ADOTableDetail。再放一个 ADOConnection 组件。设置各组件的相关属性。
2. 双击 AdapterPageProducer 打开编辑框。
3. 添加一个 AdapterForm。为此 AdapterForm 添加 AdapterFieldGroup 和 AdapterCommandGroup。
4. 为 AdapterFieldGroup 添加一个字段。
5. 为 AdapterCommandGroup 添加 NewRow 和 Apply 按钮。
6. 关闭 AdapterPageProducer 编辑框。切换到页模块的 HTML 窗格,在 body 部分添加如下 HTML 语句:
<a href="<%=Page.HREF%>?ID=1">为本页加上查询参数</a><p>
至此,可以在浏览器中进行测试。
打开这样页面,点击“为本页加上查询参数”,可以看到地址栏中的地址末尾多了“?ID=1”。再点击 “NewRow”,编辑字段后点击“Apply”,一切正常。
现在,按“高级 HTML 设计”的“操作 HTML 文件中的服务器端脚本”章节所述的方法将 AdapterPageProducer 转换成 PageProducer。再进行上述测试,你会发现新添加的字段值总是 Null。
请参阅《WebSnap 中文手册》中的“高级 HTML 设计”的“操作 HTML 文件中的服务器端脚本”章节
《WebSnap 中文手册》可在 http://service.lonetear.com/delphi/folder.asp?id=37 下载