2009-06-12 11 views
1

Was ist der Unterschied zwischen den folgenden?Benötigen Sie wirklich ein Text-Attribut in einem ASP.NET-Label?

<asp:Label runat="server">Hello World</asp:Label> 

<asp:Label runat="server" Text="Hello World"></asp:Label> 

AKTUALISIERT:

Wenn sie genau gleich sind, warum dann tut

<asp:Label ID="Label1" runat="server"> 
There were <%#transactionCount%> transactions today 
</asp:Label> 

richtig binden, wenn Single-Wert-Datenbindung und zeigt den richtigen Wert für transactionCount verwenden, während ...

<asp:Label ID="Label1" runat="server" Text="There were <%#transactionCount%> transactions today"> 
</asp:Label> 

zeigt keinen Wert für transactionCount in der Seite?


wieder aktualisiert:

ich die Punkte verstehen die wörtliche Kontrollen über die Verwendung gemacht. Ich werde mein Gesicht dementsprechend schlagen - aber es löst das Problem immer noch nicht - obwohl es vielleicht einer Lösung näher kommt.

Wenn ich ...

<asp:Literal ID="Label1" runat="server" Text="<%#transactionCount%>"></asp:Literal> 

... Ich sehe transactionCount Wert auf der Webseite angezeigt.

Auf der anderen Seite, wenn ich ein Zeichen oder ein Wort vor dem Single-Wert-Datenbindung Feld, z.

<asp:Literal ID="Label1" runat="server" Text="No. <%#transactionCount%>"></asp:Literal> 

... transactionCount wird nicht angezeigt.

+1

Sie sind die gleichen Joe. Der Parser behandelt sie gleich. –

+0

Sie sollten wirklich ein Literal dafür verwenden - wie ein anderes Poster sagt, sind Etiketten zum Etikettieren von Formularfeldern. In dem von Ihnen gelieferten Kontext ist es nicht semantisch korrekt. –

Antwort

4

Sie werden das gleiche in Ihrem endgültigen HTML rendern. Das Attribut ist jedoch nützlich, um den angezeigten Text in Ihrem Code programmgesteuert festzulegen.

+0

..und fügt Konsistenz mit dem Rest der Serversteuerelemente –

+0

Danke für die Antwort - aber ich finde nicht, dass sie die gleiche für Single-Value-Datenbindung arbeiten. Ich habe meine Frage oben aktualisiert – Joe

2

Ja, außerhalb der ITextControl-Schnittstelle. Denken Sie daran, dass 99% der Entwickler Labels falsch verwenden - normalerweise sollte Literals verwendet werden, um Ausgabe zu halten, wenn nicht nur <%# Databind() %>. Sie brauchen für die meisten Dinge keinen serverseitigen Bereich.

Wo man ein Etikett verwenden soll, ist ein Beschriftungsfeld in Ihrem Formular zu erstellen:

<asp:Label runat="server" id="LabelForFirstName" Text="First Name:" AssociatedControlID="firstname /> 
<asp:TextBox runat="server" id="FirstName" /> 

Gibt man ein Etikett mit dem ersten Namensschild gebunden und semantisch korrekten HTML.

0

Wenn Sie den Text als Hello World festlegen, können Sie den Wert nicht programmatisch von Ihrer Code-Bhind-Datei ändern.

Ange woukd können Sie den Wert als mytxt.Text ändern = „Neuer Text“

Aber sie werden auf die gleiche Weise wiedergegeben werden.

0

Ein weiterer Grund, warum sie anders sind, ist die Unterstützung implicit localization. In der Ressourcendatei geben Sie ID.Property (d. H. Label1.Text) an.

Verwandte Themen