户的代码,并从应用程序的一个事件处理
程序中调用WriteTemplate方法。WebClass根据ProcessTag事件的代码处理并替换文件中所有前缀标记,然后将模板文件写到Response对象,WriteTemplate方法再发送
模板文件到浏览器。
启动VB6,在新建工程中选择IIS应用
程序。首先看到WebClass设计器,包含"HTML模板WebItems"和"自定义WebItems"。右击WebClass设计器的"HTML模板WebItems",选择"添加HTML模板",导入上述界面
模板文件,然后将其命名为Phone_Search。
二、实现代码
双击WebClass设计器右边窗格的Form1标记,为表单提交动作定义一个自定义事件。该事件主要任务是接收用户输入的要查询数据,并把
查询数据提交到数据库。具体代码见清单。
IIS应用
程序应该指定用户首次访问时显示的内容,因此,在WebClass_Start事件中将WebClass的NextItem属性设置为Phone_Search,然后在Phone_Search_Respond事件中用模板的WriteTemplate方法将页面发送到客户端浏览器。在将页面发送到浏览器时,系统会遇到
模板中的wc@标记,此时它会自动调用Phone_Search的ProcessTag事件,并把标记名字作为参数传递给事件处理过程Phone_Search_Respond,在这个过程中返回插入文档内定制标记所在位置的HTML代码。当在表单中输入数据并提交表单时,则执行Phone_Search_Form1过程,它接收表单的数据,如没有错误则调用自定义事件处理过程Searphone,该过程提交输入数据到数据源,执行
查询并以表格形式返回结果集。
代码清单:
Option Explicit
Option Compare Text
''声明全局量
Dim FullName As String
Dim strError As String
''处理标记元素过程
Private Sub phone_search_ProcessTag(ByVal TagName As String, TagContents As String, SendTags As Boolean)
Select Case LCase(TagName)
''错误信息
Case "wc@error"
If strError <> "" Then
TagContents = "<hr><font color=""red"">"
TagContents = TagContents & "请输入要
查询的部门!" & _
strError & "
<hr></font>
<hr>"
End If
''查询的部门
Case "wc@FullName"
TagContents = "<center><input type=""text"" value=""" & FullName & """
name=""FullName""></center>"
End Select
End Sub
''响应用户请求过程
Private Sub phone_search_Respond()
''响应用户请求,输出页面
phone_search.WriteTemplate
End Sub
Private Sub phone_search_Form1()
strError = ""
''获取表单值
FullName = Request("FullName")
''测试是否为空
If FullName = "" Then strError = strError & "<i>部门不能为空!</i>"
''如表单输入值为空,则提示输入数据,否则调用查询过程
If strError <> "" Then
Set NextItem = phone_search
Else
SearPhone
End If
End Sub
Private Sub WebClass_Start()
Set NextItem = phone_search
End Sub
Public Sub SearPhone()
Dim Mysql As String
Dim Dbconn As New ADODB.Connection
Dim mrd As New ADODB.Recordset
''打开数据源
Dbconn.Open "telphone"
''构造查询SQL语句
Mysql = "select * from phone where depart like ''%" & FullName & "%''" & _
" or depart_p like ''%" & FullName & "%''"
''执行SQL查询
Set mrd = Dbconn.Execute(Mysql