サーバー側オブジェクト タグ構文
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 を使って、作成する COM コンポーネントを指定します。
- id
後続するコード内でオブジェクトを参照するときに使用される一意の名前。
- lateBinding
タイプ ライブラリ インポータ (Tlbimp.exe) によって処理された COM コンポーネントで遅延バインディング API を使用するかどうかを示します。true は遅延バインディング API を使用することを示します。false は事前バインディング API を使用することを示します。既定値は false です。
- progID
COM コンポーネントのプログラム ID を指定することによって、作成する COM コンポーネントを指定します。
- runat
ASP.NET 内でオブジェクトを実行するには、server に設定する必要があります。server 以外の値が指定された場合、ページ コンパイラは、<object> タグを処理するクライアントに送信する必要があると仮定します。
解説
ASP.NET ページ パーサーは、.aspx ファイルでサーバー側 <object> タグを検出すると、タグの id 属性をプロパティ名として使用して、ページに読み取り専用プロパティを生成します。次に、読み取り専用プロパティは、最初の使用時にオブジェクトのインスタンスを生成するように構成されます。生成されたインスタンスは、オブジェクトとしてページの階層サーバー コントロール ツリーに追加されるのではなく、ユーザー インターフェイス (UI) ではない変数の宣言として処理されます。
classid、progid、class の各属性を一緒に使うことはできません。これらの属性のうち、1 つのサーバー側 <object> タグに含めることができるのは 1 つだけです。ただし、1 つの Web フォーム ページに複数のサーバー側 <object> タグを組み込んで、これらの属性を個別のタグで使用できます。
注意
セキュリティ上の理由から、HTML ページで <object> タグとファイル アクセス プロトコルを使用したマネージ コントロールはサポートされていません。そのため、タグ内からファイルを直接参照することはできません。
使用例
Web フォーム ページで、サーバー側オブジェクト構文を使用して .NET Framework の ArrayList クラスのインスタンスを生成するコード例を次に示します。
<%@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>