Udostępnij za pośrednictwem


Control.UniqueID Właściwość

Definicja

Pobiera unikatowy, hierarchicznie kwalifikowany identyfikator kontroli serwera.

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

Wartość właściwości

String

W pełni kwalifikowany identyfikator kontroli serwera.

Atrybuty

Przykłady

Poniższy przykład tworzy ArrayList obiekt i wypełnia go trzema ciągami tekstowymi, a następnie wiąże kontrolkę Repeater serwera sieci Web z danymi w momencie ArrayList załadowania strony. Kod pobiera właściwość dla każdej kontrolki UniqueID podrzędnej wygenerowanej podczas powiązania danych. Kod generuje trzy wersje Label kontrolki i zapisuje ich UniqueID wartości właściwości na stronie.

<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>

Uwagi

Ta właściwość różni się od ID właściwości, w której UniqueID właściwość zawiera identyfikator kontenera nazewnictwa kontrolki serwera. Ten identyfikator jest generowany automatycznie po przetworzeniu żądania strony.

Ta właściwość jest szczególnie ważna w rozróżnianiu kontrolek serwera zawartych w kontrolce serwera powiązania danych, która powtarza się. Powtarzana kontrolka, która to Repeaterkontrolka , , DataListDetailsView, FormViewi GridView serwer sieci Web (lub dowolne niestandardowe kontrolki serwera, które są tworzone, które obejmują powtarzającą się funkcjonalność po powiązaniu danych), służy jako kontener nazewnictwa dla kontrolek podrzędnych. Oznacza to, że tworzy unikatową przestrzeń nazw dla kontrolek podrzędnych, dzięki czemu ich ID wartości właściwości nie powodują konfliktu.

Jeśli na przykład uwzględnisz ASP.NET Label kontrolkę serwera sieci Web w kontrolce Repeater serwera, a następnie przypiszesz kontrolce ID Label wartość MyLabelwłaściwości , i .ID MyRepeaterRepeater Jeśli powiążesz dane z Repeater ArrayList obiektem z trzema wpisami, wynikowe UniqueID właściwości dla każdego wystąpienia Label kontrolek serwera to MyRepeater$ctl00$MyLabel, MyRepeater$ctl01$MyLabeli MyRepeater$ctl02$MyLabel.

Dotyczy

Zobacz też