1

他の多くのユーザー コントロールを保持する Web ユーザー コントロールがあります。親ユーザー コントロールの ID に基づいて、これらの埋め込みコントロールに名前を付けたいと思います。

メインのユーザーコントロール内でこのコードを試しています:

<myLibrary:myChildUserControl1 ID="<%=ID%>" runat="server" />

また

<myLibrary:myChildUserControl2 ID="<%=ID%>_OkButton" runat="server" />

どちらの場合も、コンパイラ エラーが発生します。

コントロール ID を通常の HTML 要素に割り当てるのに問題はないことに注意してください。次のコードはうまく機能します。

<div ID="<%=ID%>" >

私は何が欠けていますか?

4

2 に答える 2

1

ASP.NET サーバー コントロールの ID は、名前付けコンテナーに基づいて生成されます。子コントロールに親に基づいて生成された ID を持たせたい場合、親コントロールはINamingContainer インターフェイスを実装する必要があります。

于 2010-01-13T16:08:59.507 に答える
0

上記のようにサーバー側の ID を動的に生成することはできません。ユーザー コントロールをプログラムで作成している場合にのみ機能しますが、これも問題を引き起こします。ただし、クライアント ID は生成できます。ユーザーコントロール内にある場合は、それを行うか、ユーザーコントロールにプロパティを追加できるはずです。

public string DIVID { get { return this.ClientID + "_div"; } }

そして、それを DIV 内に書き出します。

于 2010-01-13T16:20:53.510 に答える