Control.UniqueID プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
階層構造で修飾されたサーバー コントロールの一意の ID を取得します。
public:
virtual property System::String ^ UniqueID { System::String ^ get(); };
[System.ComponentModel.Browsable(false)]
public virtual string UniqueID { get; }
[<System.ComponentModel.Browsable(false)>]
member this.UniqueID : string
Public Overridable ReadOnly Property UniqueID As String
プロパティ値
サーバー コントロールの完全修飾 ID。
- 属性
例
次の例では、オブジェクトをArrayList作成し、3 つのテキスト文字列を設定し、ページが読み込まれるときに Web サーバー コントロールをデータにArrayListバインドRepeaterします。 コードは、データ バインディング中に UniqueID 生成された各子コントロールのプロパティを取得します。 このコードは、コントロールの 3 つのバージョンを Label 生成し、そのプロパティ値を UniqueID
ページに書き込みます。
<script language="c#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder();
sb.Append("Container: " +
MyDataList.NamingContainer.ToString() + "<p>");
ArrayList a = new ArrayList();
a.Add("A");
a.Add("B");
a.Add("C");
MyDataList.DataSource = a;
MyDataList.DataBind();
for (int i = 0; i < MyDataList.Controls.Count; i++)
{
Label l =
(Label)((RepeaterItem)MyDataList.Controls[i]).FindControl("MyLabel");
sb.Append("Container: " +
((RepeaterItem)MyDataList.Controls[i]).NamingContainer.ToString() +
"<p>");
sb.Append("<b>" + l.UniqueID + "</b><p>");
}
ResultsLabel.Text = sb.ToString();
}
</script>
<script language="vb" runat="server">
Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
Dim sb As New StringBuilder()
sb.Append("Container: " + _
MyDataList.NamingContainer.ToString() + "<p>")
Dim a As New ArrayList()
a.Add("A")
a.Add("B")
a.Add("C")
MyDataList.DataSource = a
MyDataList.DataBind()
Dim i As Integer
Dim l As Label
For i = 0 To MyDataList.Controls.Count - 1
l = CType(CType(MyDataList.Controls(i), RepeaterItem).FindControl("MyLabel"), Label)
sb.Append("Container: " & _
CType(MyDataList.Controls(i), RepeaterItem).NamingContainer.ToString() & _
"<p>")
sb.Append("<b>" & l.UniqueID.ToString() & "</b><p>")
Next
ResultsLabel.Text = sb.ToString()
End Sub
</script>
注釈
このプロパティは、サーバー コントロールの ID 名前付けコンテナーの識別子を含むという点 UniqueID で、プロパティとは異なります。 この識別子は、ページ要求が処理されるときに自動的に生成されます。
このプロパティは、繰り返されるデータ バインディング サーバー コントロール内に含まれるサーバー コントロールを区別する場合に特に重要です。 繰り返しコントロール (RepeaterFormViewDataListDetailsViewデータバインド時に繰り返しGridView機能を含むカスタム サーバー コントロール) 、つまり、Web サーバー コントロール (または作成したカスタム サーバー コントロール) は、子コントロールの名前付けコンテナーとして機能します。 つまり、プロパティ値が競合しないように、子コントロールの一意の名前空間が ID 作成されます。
たとえば、ASP.NET Label Web サーバー コントロールをサーバー コントロールに含め、コントロールにRepeater Label IDプロパティ値 MyLabel
、および .Repeater ID MyRepeater
3 つのエントリを持つオブジェクトにArrayListRepeaterデータをバインドする場合、サーバー コントロールの各インスタンスの結果UniqueIDのLabelプロパティは MyRepeater$ctl00$MyLabel
、、MyRepeater$ctl01$MyLabel
およびMyRepeater$ctl02$MyLabel
です。