Weiß jemand, warum ASP.NET 4 ctl00
Präfix auf ASP-Steuerelemente gelöscht hat?ASP.NET 2.5 Präfixing Ctl00 und ASP.NET 4 nicht Präfixing Ctl00
Gibt es eine Einstellung, die ich verpasst habe?
Weiß jemand, warum ASP.NET 4 ctl00
Präfix auf ASP-Steuerelemente gelöscht hat?ASP.NET 2.5 Präfixing Ctl00 und ASP.NET 4 nicht Präfixing Ctl00
Gibt es eine Einstellung, die ich verpasst habe?
In ASP.NET 4.0, sie haben Unterstützung für sauberere HTML-Syntax eingeführt. Sie können darüber lesen at Scott Gu's blog. Wenn Sie das klassische Modell für Client-IDs möchten, können Sie Ihre web.config anpassen:
<configuration>
<system.web>
<pages controlRenderingCompatibilityVersion="3.5" />
Und das wird Ihre Anwendung ein Upgrade einfacher. Sie können dies per Steuerung ändern (und pro Seite), indem die Control.ClientIDMode
Eigenschaft verwendet, die auch in dem Web-Config eingestellt werden können:
<configuration>
<system.web>
<pages clientIDMode="AutoID|Predictable|Static|Inherit" />
AutoID
machen die Kontrollen mit dem klassischen ASP.NET 2.0-Modell.
Keine Einstellung, sondern eine Entscheidung von MS zur Vereinfachung der Umwandlung von IDs von Steuerelementen in Containern in den Client.
Hier ist ein blog post von Scott Guthrie die Änderungen zu erklären. Die Überlegung dahinter:
reinigen, auf Standards basierende, CSS-freundliches Markup
Soweit ich mich erinnere, bis zu ASP.NET zu entscheiden, welches Präfix zu verwenden. Es ist eine schlechte Übung, auf den Steuerelementen mit hardcoded ID-Wert zu verweisen.
sollten Sie ClientId Eigenschaft verwenden, die Ihnen richtige Id immer generieren:
<td class="tmarg10" style="width: 150px">
<label for="<%=txtName.ClientID %>">
Name of the mall group :</label>
</td>
<td class="tmarg10">
<asp:TextBox ID="txtName" runat="server" Columns="90" /> <br />
</td>
In dem obigen Beispiel, der richtigen ID der Textbox Berechnung und in Label-Attribut setzen. Auf diese Weise werden Sie sich nicht mehr darum sorgen, die gleiche ID der Kontrolle zu behalten.
Wenn Sie nur das Präfix "ct100" zu den IDs Ihres Steuerelements hinzufügen möchten, fügen Sie Ihrer Webseite eine Masterseite hinzu. Aber wie oben gesagt, versuchen Sie, hardcode mit Steuer-IDs in Ihren Quellen zu vermeiden und lesen Sie Metthew's Kommentare für die Generierung benutzerdefinierte ID
In meinem Fall ist es wahrscheinlich speziell, aber für alle, die diese Methode ausprobiert und nicht für die Versuchen Sie beim ersten Mal auch, das clientIDMode-Attribut gleichzeitig einzugeben. –
TypingPanda