除了在页面设计器中布置页面元素外,可以从代码中创建HTML元素并将它们插入到页面。如果要在响应用户的操作中创建一个页面可能需要这样做。例如,可以在一个查询的响应中动态地创建一个页面和它的内容。通过使用DHTML对象模型的insertAdjacentHTML方法在代码中编写HTML,创建和插入一个HTML元素。
假设正在创建一个应用程序,在该程序中一个搜索按钮启动一个数据库查询来返回一个客户的姓和定单号。想动态地创建页面元素来包含查询结果。
在这个例子中,代码必须做的第一件事情是从页面的两个文本字段中获取用户的搜索条件。用户要搜索这些字段的IDs,对姓是“custLN”、对定单号是“orderNO”。在这种情况下,可以使用两个变量从这些字段中获取搜索条件:
Private Function cmdSearch_onclick() As Boolean Dim sLastName As String Dim sOrderNum As String Dim divCustInfo as HTMLDivElement '
获取搜索条件并保存在变量中SLastName = Me.custLN.Value
SorderNum = Me.orderNO.Value
End Function
从查询页面中获取值之后,通过在一个结果页面上创建和置入一个DIV标记,将执行该查询并发送结果到用户。在这个过程中需要执行一系列的步骤:
下面的代码显示了将如何检查DIV标记作为前面部分开始的函数的一部分。
Private Function cmdSearch_onclick() As Boolean '
这里的代码是声明变量和获取搜索条件'
检查一个称为“Custinfo
”DIV
标记。Set divCustInfo = Me.Document.All("custinfo")
'
如果没有DIV
标记则创建三组HTML
元素:'
查找:一个分隔符行、一个带有文本的DIV
、和一个包含查询结果的可编程'DIV
。If divCustInfo Is Nothing Then
Me.Document.body.insertAdjacentHTML "BeforeEnd", _
"<DIV><HR SIZE=2></DIV>"
Me.Document.body.insertAdjacentHTML "BeforeEnd", _
"<DIV CLASS=custhead>Customer Information</DIV>
Me.Document.body.insertAdjacentHTML "BeforeEnd", _
"<DIV id=custinfo>"
'
使用一个CustomerQuery
函数运行该查询并插入结果到'
“Custinfo
”DIV
标记中。If sLastName <> "" Then
Me.Document.body.insertAdjacentHTML "BeforeEnd", _
CustomerQuery(sLastName)
EndIf
'
对可编程DIV
元素创建和插入'
关闭标记。Me.Document.body.insertAdjacentHTML "BeforeEnd", "</DIV>"
'
如果DIV
标记已经存在,运行CustomerQuery
函数并用查询结果'
替换该元素。Else
DivCustInfo.innerHTML = CustomerQuery(sLastName)
EndIf
End Function