ASP与ActiveX控件交互实战(二)

龙卷风

关键字 :ASP,ActiveX 控件 , 数字签名 , 安全

我们来看看如何从服务端获取数据,传递到 ActiveX 控件中。

1) 初始化时使用参数绑定

2) 运行时得到数据

打开 vb6, 新建 ActiveX 控件工程。

工程名 :fOcx ,用户控件名 :UC2

为了方便,我们使用 ActiveX 控件接口向导 …, 菜单 -> 外接程序 -> 外接程序管理器 ->VB 6 ActiveX 控件接口向导。确定即可。

打开 ActiveX 控件接口向导,下一步,对于可用名称和选定名称我们默认下一步,新建自定义成员, GetInfo 类型 : 属性,下一步,共有方法中选择我们刚才添加的 GetInfo, 映射到控件选择 TxtInfo, 成员选择 Text, 下一步直到完成。代码窗口中会生成一些我们不需要的,删除,

' 注意!不要删除或修改下列被注释的行!

'MappingInfo=txtinfo,txtinfo,-1,Text

Public Property Get GetInfo() As String

GetInfo = txtinfo.Text

End Property

Public Property Let GetInfo(ByVal New_GetInfo As String)

txtinfo.Text() = New_GetInfo

PropertyChanged "GetInfo"

End Property

Private Sub Command1_Click()

Label2.Caption = GetInfo()

End Sub

' 从存贮器中加载属性值

Private Sub UserControl_ReadProperties(PropBag As PropertyBag)

txtinfo.Text = PropBag.ReadProperty("GetInfo", "Text1")

End Sub

' 将属性值写到存储器

Private Sub UserControl_WriteProperties(PropBag As PropertyBag)

Call PropBag.WriteProperty("GetInfo", txtinfo.Text, "Text1")

End Sub

编译成 OCX 控件 . 运行生成的测试页 .Text 中默认的是 Text1

如何将服务器端的数据传递给 OCX 呢 ?

使用 Microsoft ActiveX Control Pad 这个工具 , 可以很容易找到 .

直接用这个工具把测试页打开 .

菜单 ->Edit->Edit Activex Control, 呵呵 , 打开了一个可视化的界面 .

看到了吧 , 有一个属性框 , 我们可以进行设置,设置完成以后的代码如下:

 1<html>
 2<head>
 3<title>New Page</title>
 4</head>
 5<body>
 6<object classid="CLSID:890D1028-298B-45CF-9A64-6ED5A5BACBC9" codebase="http://localhost/xml/fOcx.ocx" height="440" id="GetClient" width="507">
 7<param name="_ExtentX" value="13414"/>
 8<param name="_ExtentY" value="11642"/>
 9<param name="GetInfo" value="  这是  ocx  得到的客户端读卡器的信息  "/>
10</object>
11</body>
12</html>

增加了 ID,ID 就是我们用来访问的标志 . 还有我们的属性 GetInfo, 我们也设定初始值了

好了 , 运行 .

Text 中就出现了我们设定的值 ” 这是 ocx 得到的客户端读卡器的信息 ”

我们把上边的页面改成 asp 的 , 看代码 :

1<html>
2<head>
3<title> 龙卷风测试页  </title>
4</head>
5<body>

dim sValue

sValue=" 这是 ocx 得到的客户端读卡器的信息 "

 1
 2<object classid="CLSID:56DFCA88-F5B8-4879-853B-97FE504423FD" codebase="http://localhost/xml/fOcx.ocx" height="440" id="GetClient" width="507">
 3<param name="_ExtentX" value="13414"/>
 4<param name="_ExtentY" value="11642"/>
 5<param name="GetInfo" value="```
 6=sValue
 7```"/>
 8</object>
 9</body>
10</html>

OK, 运行即可

我们看看第二种情况

运行时得到数据

1<html>
2<head>
3<title> 龙卷风测试页  </title>

dim sValue

sValue=" 这是 ocx 得到的客户端读卡器的信息 "

 1
 2<script id="clientEventHandlersJS" language="javascript">
 3
 4<!-- 
 5
 6function button1_onclick() 
 7
 8{ 
 9
10GetClient.GetInfo='```
11=sValue
12```'; 
13
14} 
15
16//-->
17
18</script>
19</head>
20<body>
21<object classid="CLSID:56DFCA88-F5B8-4879-853B-97FE504423FD" codebase="http://localhost/xml/fOcx.ocx" height="440" id="GetClient" width="507">
22<param name="_ExtentX" value="13414"/>
23<param name="_ExtentY" value="11642"/>
24</object>
25<input id="button1" language="javascript" name="button1" onclick="return button1_onclick()" type="button" value="Button"/>
26</body>
27</html>

运行后 , 点击按钮即可看到效果 .

未完待续

Published At
Categories with Web编程
Tagged with
comments powered by Disqus