2012-02-20 17 views
13

के साथ पोस्टफिक्स लेबल टेक्स्ट मैं एएसपी.नेट एमवीसी 3 का उपयोग करता हूं। मेरे रूपों के लिए, मैं लेबल के टेक्स्ट को दाईं ओर संरेखित करता हूं। इसके अलावा, लेबल और इनपुट फ़ील्ड के बीच एक कोलन है।कॉलन

Firstname: [   ] 
    Last: [   ] 

मैं स्वचालित रूप से इस बृहदान्त्र सीएसएस या MVC 3 में कुछ सी # कोड का उपयोग कर सम्मिलित कर सकते हैं?

सबसे अच्छी बात मैं अब तक के साथ आया था [Display(Name="Firstname:")] विशेषता का उपयोग करने के लिए है, लेकिन यह भी सत्यापन संदेश में यह पेट के शामिल है, के पक्ष प्रभाव है:

[Required] 
[Display(Name = "Firstname:")] 
[StringLength(100, ErrorMessage = "The {0} must be at least {2} character long.", MinimumLength = 1)] 
public string Firstname { get; set; } 

अन्य वैकल्पिक का उपयोग किया गया LabelFor() विधि अधिभार, लेकिन इस लेबल पाठ दो बार (एक बार मॉडल में और एक बार cshtml फ़ाइल में) निर्दिष्ट करने के लिए मुझे मजबूर करता:

<div> 
    <div class="editor-label">@Html.LabelFor(x => x.Firstname, "Firstname:")</div> 
    <div class="editor-field">@Html.TextBoxFor(x => x.Firstname)</div> 
</div> 

कोई बेहतर सुझाव?

उत्तर

27

सीएसएस के माध्यम से, आप after छद्म वर्ग के माध्यम से कोलन जोड़ सकते हैं। आप इस छद्म वर्ग here के बारे में अधिक जानकारी प्राप्त कर सकते हैं।

.editor-label > label:after { 
    content: ": " 
} 

कार्य उदाहरण: http://jsfiddle.net/fJQDZ/

कृपया ध्यान दें कि after छद्म वर्ग IE7 में उपलब्ध नहीं है।

+0

धन्यवाद, लेकिन यह भी जांचना संभव है कि सामग्री की लंबाई शून्य से अधिक है या नहीं? –

+1

अकेले सीएसएस का उपयोग करना ऐसा करना संभव नहीं है। यदि लंबाई शून्य से अधिक है तो आप किसी तत्व को कक्षा जोड़ने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं। और फिर इस उत्तर में एक ही सीएसएस का उपयोग करके उन तत्वों को लक्षित करें; जैसे '.editor-label> .has-content: {...}' –

+0

धन्यवाद, यह काम करेगा! –

संबंधित मुद्दे