服务器端对象标记语法
更新: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>