ASP.Net: Birebir ve Etiket


102

Bir LITERALkontrolünü ne zaman ve nerede kullanmanız gerektiği konusunda bazı yetkilileri duymak istedim LABEL.

Anladığım kadarıyla, fark şudur: A , eklenen etiketler LABELaracılığıyla şekillendirilebilir <SPAN>.

Ben şahsen eklenmesini bulmak <SPAN>çok can sıkıcı olmak benim HTML etiketleri ve asla aslında ASP yoluyla stilleri uygulayabilir ve böylece LITERALlar çoğu zaman kullanılması gerektiğini görünmektedir ... ama endişeleniyorum var diğer üzere hususlarda ya da faydaları farkında olmadığım bir LABEL kullanarak

Herhangi bir LABELs'yi s ile değiştirmek LITERAL, onlara stil uygulamıyorsak, % 100 sorun olur mu? Başka HİÇBİR husus yok mu

Yanıtlar:


126

Evet, temel fark, Literalkontrollerin yalnızca metni oluşturması, ancak Labelkontrollerin onu <span>etiketlerle çevrelemesidir ( AssociatedControlIDÖzelliği kullanmadığınız sürece , bu durumda bir Labelkontrol bir <label>etiket oluşturacaktır ).

Böylece, etiketler daha kolay şekillendirilebilir, ancak yalnızca metin ekliyorsanız, hazır değerler gitmenin yoludur. Değişmez denetimlerin ayrıca Modemetnin nasıl işleneceğini yöneten kullanışlı bir özelliği vardır. HTML olarak kodlayabilir veya herhangi bir değişiklik yapmadan oluşturabilir veya "desteklenmeyen biçimlendirme dili öğelerini" kaldırabilirsiniz.

Herhangi bir stil uygulamıyorsanız (örneğin Label's CssClassözelliğini kullanarak ), Labelkontrolleri Literalkontrollerle değiştirmek sorun olmayacaktır .


1
Öyleyse, burada emin olmak için başka hiçbir husus yok mu? "Asıl fark ..." yazdığınız için soruyorum. Açıkçası temel farkla ilgilenmiyorum. Teşekkürler.
Chuck Le Butt

2
@Django: Chris Marisic'in cevabı gerçekten önemli; LabelBir HTML <label>öğesi istediğinizde ASP.Net kontrolleri her zaman kullanılmalıdır . Bunun dışında, Etiketler arasında metin oluşturulur <spans>, Değişmezler olmaz ve Değişmezler size metnin nasıl işlendiği konusunda daha fazla kontrol sağlar. Her iki kontrolde de özel bir olay yoktur ve bunların içeriklerine arka plan kodunda tam olarak aynı şekilde ( Textözellik aracılığıyla ) erişilebilir .
Graham Clark

2
KONTROL KUTULARI! RADYO DÜĞMELERİ! LabelKontrolleri kullanıyorsanız , AssociatedControlIDözniteliği, etiketin ilişkilendirildiği onay kutusu veya radyo düğmesinin kimliğiyle ekleyebilirsiniz . Bu şekilde etikete tıklayabilirsiniz ve ilgili kontrol etkinleştirilecektir. Tıklanabilir hedef alanını büyütmek, kullanıcı arayüzünün kullanımını da kolaylaştıracaktır.
Harry Pehkonen

34

Benzer bir kodunuz olduğunda

<asp:Label EnableViewState="false" ID="Label8" runat="server" 
        AssociatedControlID="txtEmail">Email Address:</asp:Label>

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

Bir etiket öğesini kullanmak en uygunudur çünkü onu doğru bir şekilde html'ye dönüştürecektir. labelfor metin kutunuzu hedefleyen doğru özniteliğe sahip öğesine , böylece bir kullanıcı etiketi tıkladığında imlecini metin alanının içine otomatik olarak yerleştirir.

Aksi takdirde, metnin a ile sarılmış spanolması css stili için faydalı olmadığı sürece değişmezi kullanın .


19

görüntü açıklamasını buraya girin

Basit metni, biçimlendirilmiş metni veya HTML metnini olduğu gibi görüntülemek için, ilk olarak hafif olduğundan ve fazladan SPAN etiketleri yaymayacağından ilk olarak literal ile başlayacağım.

Bkz Bu videoyu bu ekstra etiketleri hakkında gösterir.

Ancak bir literal üzerine CSS uygulayamıyoruz, Label1.Attributes gibi nitelikler ekleyemiyoruz. Tam anlamıyla bir SPAN etiketi ile çevrili olmadığı için herhangi bir kapsayıcı yönelimli şey elde edilemez.

Ayrıca ASP.NET Webform çalışanlarının birçoğunun varsayılan olarak etiketi seçip metni görüntülemek için çok fazla etiketiniz varsa HTML'nizi ağırlaştırabilecek fazladan SPAN etiketleri oluşturduğunu bilmeden seçtiklerini görmek de üzücü.


3

Asp.net'te S / B Etiket ve Değişmez Kontrol Farkı

Hemen hemen tüm şekillerde, bir Değişmez değer denetimi, Etiket denetimi ile aynıdır. Bu kontrollerin her ikisi de bir web formunda Metin görüntülemek için kullanılır. (Metin özelliği HTML'de veya arka plan kodunda ayarlanabilir.)

En büyük fark, Etiket denetiminin span, işlendiğinde metni bir ile sarmalamasıdır . Etiket denetimine uygulanan herhangi bir stil, öğenin styleözelliği kullanılarak işlenecektir .span .

Örneğin, aşağıdaki HTML

<asp:Label ID="Label1" runat="server"  Text="Label Text"
ForeColor="Red" Font-Bold="true" ></asp:Label>

Olarak işlenecek

<span id="Label1" style="color:Red;font-weight:bold;">Label Text</span>

Bir Değişmez denetim çevreleyen herhangi bir etiket çıktısı vermez, bu nedenle Metin şu şekilde görüntülenir:

Örneğin, aşağıdaki HTML

<asp:Literal ID="Literal1" runat="server" 
Text="Literal Control Text"></asp:Literal>

olarak işlenecek

Literal Control Text

Bu nedenle, a'ya herhangi bir stili uygulamak istiyorsanız, Etiket denetimini kullanın, aksi takdirde Değişmez denetim kullanın. Bu nedenle, Literal denetim, Etiket denetimiyle karşılaştırıldığında hafif bir denetimdir.

Bilginize: Literal kontrol sınıfı için miras hiyerarşisi (Object => Control => Literal) şeklindedir , burada Label kontrolünde olduğu gibi, hiyerarşi (Object => Control => WebControl => Label) şeklindedir.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.