• 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,呵呵,打开了一个可视化的界面.

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

    <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
    介绍一些实用的IOS手势识别库 (COCOS2D)
    cocos2d-x引擎实现$1Unistroke Recognizer手势识别
    【luogu P4755】Beautiful Pair(ST表)(笛卡尔树)(主席树)
    【ybtoj高效进阶 21290】头文件 D(平衡规划)(线段树)
    【ybtoj高效进阶 21289】头文件 C(图论)(dfs)
    【ybtoj高效进阶 21288】头文件 B(线段树)(图论)
    【ybtoj高效进阶 21282】数字重组(DP)(数学)
    【ybtoj高效进阶 21281】矩阵逆转(模拟)
    【ybtoj高效进阶 21280】景点距离(DP)(换根)
  • 原文地址:https://www.cnblogs.com/Athrun/p/1127634.html
Copyright © 2020-2023  润新知