http://support.microsoft.com/kb/317392/zh-cn
承载在 ASP.NET 中的 ActiveX 控件
如果您通过使用 Add Reference (添加引用) 选项添加对 ActiveX 控件的引用,可以通过使用 创建对象 方法,在代码中创建控件类型的对象。 该对象在服务器端上, 运行,并可以调用对象的方法。 例如,如果方法的返回类型是二进制数据,可以向客户端编写二进制数据。 使用 响应 对象的 BinaryWrite 方法。
注意 : 无法从客户端脚本中建立的 BinaryWrite 方法调用。
如果您承载的 ActiveX 控件,并且您想要访问该属性和 ActiveX 控件在客户端的方法,您必须手动修改 HTML 代码。 在 HTML 代码驻留后面 ASPX 页。
默认情况下实际上使用在 Visual Studio .NET 集成的开发环境 (IDE) 中 ASPX 页的设计模式下。 要查看页的 HTML 版本,单击左下角的设计窗口中的 HTML 按钮。
当您将放在 Web 窗体上的 ActiveX 控件时,HTML 代码中创建一个 OBJECT 标记。 加载页面时创建一个客户端的 ActiveX 控件。 因为前面的示例是一个纯粹的客户端控件,服务器端代码不能访问该控件。 服务器端代码可以访问仅服务器控件,它是在工具箱中的 Web 窗体 选项卡列出的控件。
若要确定是否一个控件是一个服务器端控件或客户端控件,请参阅该控件的左上角。 默认情况下在该控件的左上角一个小绿色箭头表示该控件位于服务器端。
下面的示例演示如何在 Microsoft Visual Basic .NET 中使用 MSChart 控件在 Web 窗体中。 本示例加载页面时,更改图表的宽度。 您可以查看 ASPX 页的 HTML 版本,然后将复制和将下面的代码粘贴到页。 此操作将替换原始代码。 为此,请按照下列步骤操作:
- 在 Visual Basic .NET 中创建一个新的 ASP.NET Web 应用程序项目。 为此,请按照下列步骤操作:
- 在 文件 菜单上, 单击 新建 ,然后单击 Project 。
- 在 项目类型 ,下单击 Visual Basic 项目 。
- 模板 下, 单击 ASP.NET Web 应用程序 。
- 您现在已经有一个空的 Web 窗体。 要查看页的 HTML 版本,单击左下角的设计窗口中的 HTML 按钮。
- Replace the existing code with the following code:
<%@ Page SmartNavigation="true" Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="VBWebApp.WebForm1"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <title>WebForm1</title> <script language="javascript"> function changeWidth(x) { x.width = 300 } </script> </HEAD> <body MS_POSITIONING="GridLayout"> <form id="Form1" method="post" runat="server"> <OBJECT id="chart1" style=" Z-INDEX: 102; LEFT: 125px; WIDTH: 484px; POSITION: absolute; TOP: 85px; HEIGHT: 200px" onReadyStateChange = "changeWidth(this)" classid="clsid:3A2B370C-BA0A-11D1-B137-0000F8753F5D" VIEWASTEXT> </OBJECT> </form> </body></HTML>
或者,可以插入通过集成的开发环境 (IDE) 控件按照以下步骤:
- 打开工具箱,然后单击 组件 选项卡。
- 用鼠标右键单击选项卡上, 任何区域,然后单击 自定义工具箱 。
- 在 COM 组件 选项卡上,滚动,然后选择 Microsoft 图表 Control 6.0 (SP 4) (OLEDB) 复选框或类似的项。
- 完时, 组件 选项卡拖放到 Web 窗体此控件上将出现新的组件调用 MSChart 。
当您完成上述步骤时,您会看到该控件执行 不 在左上角中有一个绿色箭头。 一个绿色箭头意味着该控件驻留在服务器端上并且该控件是从服务器端代码访问。