ASP.Net - Benennung Behälter und ClientIDMode="Static"

MSDN-Dokumentation Mitgliedstaaten hinsichtlich der ClientIdMode:

Statische Der ClientID-Wert festgelegt ist, der Wert der ID-Eigenschaft. Wenn die Steuerung ist ein naming-container, die Kontrolle als
an der Spitze der Hierarchie des naming-Container für alle Steuerelemente, die es
enthält.

Quelle: http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode%28v=vs.100%29.aspx

Aber ich bin nicht der Suche nach der "Spitze der Hierarchie" business der Fall zu sein. Zum Beispiel, ich habe ein usercontrol:

<uc1:WidgetsListControl runat="server" id="WidgetsListControl" ClientIDMode="Static"  />

Für eine gute Maßnahme, habe ich die clientidmode in die control source so gut, obwohl ich bin nicht sicher, wo Sie benötigt wird:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WidgetsListControl.ascx.cs" Inherits="WebApplication1.WidgetsListControl" EnableViewState="false" ClientIDMode="Static" %>

Innerhalb der Benutzer die Kontrolle, ich habe eine textbox:

<asp:TextBox ID="testTextBox" runat="server" />

Meine Erwartung ist, dass das text-Feld mit dem Namen etwas wie WidgetsListControl$testTextBox

Aber was ich finden Sie auf Ansicht Quelle:

<input name="ctl00$MainContent$WidgetsListControl$testTextBox" id="testTextBox" type="text"/>

Was bin ich? Gibt es eine Möglichkeit, das zu erreichen, was ich Suche (kürzere ids), ohne 'static' auf alle Steuern, die in das Benutzersteuerelement?

EDIT:

Eigentlich nach der Suche näher, ich finde, dass das ID-Attribut ist die Arbeit wie beschrieben in der MSDN - aber das name-Attribut wird immer noch das volle Verkettung der naming-container Hierarchie.

Erhalten eine Website von hoher Komplexität, die Namen und IDs der Steuerelemente starten, um die Mehrheit der Bandbreite (markup-Größe). Ich kann nicht scheinen zu finden, eine gute Abhilfe, um schlanker zu den markup-Code in dieser Hinsicht.

Ich hatte noch nie ein Problem mit ClientIDMode. Aber nach der Aktualisierung einer Website auf eine Web-app, die ich plötzlich bekommen "existiert nicht im aktuellen Kontext". aber nur auf der Benutzersteuerelemente.

InformationsquelleAutor Shaun Rowan | 2013-05-30

Schreibe einen Kommentar