打印本文 打印本文  关闭窗口 关闭窗口  
ASP与ActiveX控件交互实战
作者:龙卷风.NET  文章来源:csdn.net  点击数  更新时间:2006/4/22 23:05:20  文章录入:admin  责任编辑:admin



关键字: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,呵呵,打开了一个可视化的界面.
看到了吧,有一个属性框,我们可以进行设置,设置完成以后的代码如下:
<HTML>
<HEAD>
<TITLE>New Page</TITLE>
</HEAD>
<BODY>
<OBJECT ID="GetClient" WIDTH=507 HEIGHT=440
 CLASSID="CLSID:890D1028-298B-45CF-9A64-6ED5A5BACBC9"
 CODEBASE="http://localhost/xml/fOcx.ocx">
    <PARAM NAME="_ExtentX" VALUE="13414">
    <PARAM NAME="_ExtentY" VALUE="11642">
    <PARAM NAME="GetInfo" VALUE="这是ocx得到的客户端读卡器的信息">
</OBJECT>
</BODY>
</HTML>
增加了ID,ID就是我们用来访问的标志.还有我们的属性GetInfo,我们也设定初始值了
好了,运行.
Text中就出现了我们设定的值”这是ocx得到的客户端读卡器的信息”
 
我们把上边的页面改成asp的,看代码:
<HTML>
<HEAD>
<TITLE>龙卷风测试页</TITLE>
</HEAD>
<BODY>
<%
dim sValue
sValue="这是ocx得到的客户端读卡器的信息"
%>
<OBJECT ID="GetClient" WIDTH=507 HEIGHT=440
 CLASSID="CLSID:56DFCA88-F5B8-4879-853B-97FE504423FD"
 CODEBASE="http://localhost/xml/fOcx.ocx">
    <PARAM NAME="_ExtentX" VALUE="13414">
    <PARAM NAME="_ExtentY" VALUE="11642">
    <PARAM NAME="GetInfo" VALUE="<%=sValue%>">
</OBJECT>
</BODY>
</HTML>
OK,运行即可
 
我们看看第二种情况
运行时得到数据
<HTML>
<HEAD>
<TITLE>龙卷风测试页</TITLE>
 
<%
dim sValue
sValue="这是ocx得到的客户端读卡器的信息"
%>
<SCRIPT ID=clientEventHandlersJS LANGUAGE=javascript>
<!--
 
function button1_onclick() 
{
GetClient.GetInfo=’<%=sValue%>’;
}
 
//-->
</SCRIPT>
</HEAD>
<BODY>
<OBJECT ID="GetClient" WIDTH=507 HEIGHT=440
 CLASSID="CLSID:56DFCA88-F5B8-4879-853B-97FE504423FD"
 CODEBASE="http://localhost/xml/fOcx.ocx">
            <PARAM NAME="_ExtentX" VALUE="13414">
            <PARAM NAME="_ExtentY" VALUE="11642">
        </OBJECT>
<INPUT id=button1 type=button value=Button name=button1 LANGUAGE=javascript onclick="return button1_onclick()">
</BODY>
</HTML>
 
运行后,点击按钮即可看到效果.
 

上一页  [1] [2] [3]  下一页

打印本文 打印本文  关闭窗口 关闭窗口