龍卷風
關鍵字: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>
運行后,點擊按鈕即可看到效果.
未完待續
|