Share via


服务器端对象标记语法

更新:2007 年 11 月

在 Web 窗体页中声明并创建 COM 和 .NET Framework 对象。

<object id="id" 
        runat="server" 
        latebinding="true|false" 
        class="Class Name">
<object id="id" 
        runat="server" 
        latebinding="true|false" 
        progid="COM ProgID"/>
<object id="id" 
        runat="server" 
        latebinding="true|false" 
        classid="COM ClassID"/>

属性

  • class
    指定要创建的 .NET Framework 类。

  • classID
    使用组件的类标识符指定要创建的 COM 组件。

  • id
    当引用后面的代码中的对象时使用的唯一名称。

  • lateBinding
    指示是否应对类型库导入程序 (Tlbimp.exe) 处理过的 COM 组件使用后期绑定 API。true 表示应使用后期绑定 API;false 表示应使用早期绑定 API。默认值为 false。

  • progID
    通过指定组件的编程标识符来指定要创建的 COM 组件。

  • runat
    对于要在 ASP.NET 内执行的对象,必须设置为 server。任何非服务器值都将导致页编译器假定应将 <object> 标记发送到客户端以进行处理。

备注

当 ASP.NET 页分析器在 .aspx 文件中遇到服务器端 <object> 标记时,它使用该标记的 id 属性作为属性名在该页上生成只读属性。在首次使用时配置只读属性来创建对象的实例。不将得到的实例作为一个对象添加到页的分层服务器控件树中,而将其作为非用户界面 (UI) 变量声明来对待。

classid、progid 和 class 属性是互斥的。单个服务器端 <object> 标记中只能包含这些属性中的一个。但是,您可以在 Web 窗体页中包括多个服务器端 <object> 标记,并在不同的标记中使用这些属性。

说明:

为安全起见,不支持 HTML 页中使用 <object> 标记和文件访问协议的托管控件。因此,不能直接从标记中引用文件。

示例

下面的代码示例使用服务器端对象语法在 Web 窗体页中创建 ArrayList .NET Framework 类的实例。

<%@Page language="C#" %>
<html>
   <object id="items" class="System.Collections.ArrayList" runat="server" />
   <script language="C#" runat=server>
      void Page_Load(Object sender, EventArgs e) {
         items.Add("One");
         items.Add("Two");
         items.Add("Three");

         MyList.DataSource = items;
         MyList.DataBind();
      }
   </script>

   <body>
      <form id="form1" runat="server">
      <asp:datalist id="MyList" runat=server>
         <ItemTemplate>
            Here is a value: <%# Container.DataItem %>
         </ItemTemplate>
      </asp:datalist>
      </form1>
   </body>
</html>
<%@Page language="VB" %>
<html>
   <object id="items" class="System.Collections.ArrayList" runat="server" />
   <script language="VB" runat=server>
      Sub Page_Load(Sender As Object, E As EventArgs)
         items.Add("One")
         items.Add("Two")
         items.Add("Three")

         MyList.DataSource = items
         MyList.DataBind()
      End Sub
   </script>

   <body>
      <form id="form1" runat="server">
      <asp:datalist id="MyList" runat=server>
         <ItemTemplate>
            Here is a value: <%# Container.DataItem %>
         </ItemTemplate>
      </asp:datalist>
      </form1>
   </body>
</html>

请参见

概念

ASP.NET 网页语法概述

ASP.NET 网页介绍