2009-10-19 25 views
7

में वैकल्पिक पंक्तियों को कैसे शैलीबद्ध करें I <% foreach का उपयोग कर रहा हूं ...%> लूप मेरी वेबसाइट पर वस्तुओं का संग्रह सूचीबद्ध करने के लिए।asp.net mvc

मैं अपनी सूची में वैकल्पिक पंक्तियों की शैली के लिए एक अलग पृष्ठभूमि रंग जोड़ना चाहता हूं। मुझे ऐसा करने का एक तरीका मिला है लेकिन मैं इससे संतुष्ट नहीं हूं क्योंकि यह एक हैक जैसा लगता है।

यहाँ क्या मैं इसे अब तक हल करने के लिए किया है किया गया है:

<table> 
    <% int counter = 0; 
     foreach (var item in Model) 
     { 
      counter++; 

      if (counter % 2 == 0) 
      { 
    %> 
      <tr class="colorfull"> 
      <% } 
      else 
      { %> 
      <tr> 
      <% } %> 
... 

वहाँ एक सबसे अच्छा अभ्यास है कि मुझे लगता है कि लोगों को ASP.NET MVC में इस परिदृश्य के लिए उपयोग कर रहे हैं याद आ रही है?

उत्तर

12

मुझे JQuery कोड का यह स्निपेट मिला, जो मुझे बहुत क्लीनर लगता है।

$(document).ready(function() { $("table tr:nth-child(odd)").addClass("colorfull"); }); 

मैंने काउंटर तर्क लिया है। यह JQuery स्क्रिप्ट फोरैच लूप में हर दूसरी पंक्ति के सीएसएस वर्ग को सेट करने के लिए डीओएम का उपयोग करती है।

+0

मैं इस सलाह देते हैं, आप के लिए कोई टैग सूप! – jfar

+0

http://roshanbh.com.np/2008/03/different-color-alternate-row-jquery.html –

+0

मैंने इस पंक्ति को कई समान प्रश्नों में दोहराया है लेकिन यह हमेशा संदर्भ से बाहर है। आप इसे कहां रखेंगे? (मैं आम तौर पर एमवीसी, jQuery और वेब विकास के लिए बहुत नया हूं!) – Lewray

1

यदि आप इसे क्लीनर चाहते हैं तो मैं कस्टम HtmlHelper एक्सटेंशन लिखने की अनुशंसा करता हूं। मैं jquery का उपयोग नहीं करता क्योंकि stu42 केवल सुझाव देता है क्योंकि मैं पूरी तरह से व्यवहार के लिए जावास्क्रिप्ट को देखना पसंद करता हूं। आदर्श रूप से, और उम्मीद है कि बहुत दूर भविष्य में, आप इस उद्देश्य के लिए शुद्ध सीएसएस का उपयोग करेंगे। तब तक, मैं इसे मार्कअप में छोड़ दूंगा, जैसा कि आप वर्तमान में कर रहे हैं, लेकिन एक एक्सटेंशन के साथ जो तर्क को संभालता है, इसे एएसपीएक्स से बाहर खींचता है।

+0

क्या आप इसका उदाहरण दे सकते हैं कि यह कैसा दिख सकता है? – YeahStu

5

आप साहसी प्रकार जो CSS3 के

tr:nth-child(odd)  { background-color:#eee; } 
tr:nth-child(even)  { background-color:#fff; } 
+0

आग फॉक्स, क्रोम में काम करता है, लेकिन आईई में नहीं :( – Sly

+0

आईई 8 में भी नहीं? हे हेवन ने आईई 8 पर खुद का परीक्षण किया लेकिन मुझे लगा कि यह होगा ... सर्विस पैक !! – Perpetualcoder

+0

Win7 पर IE 8 में काम न करें x64 – Sly

1

में गोता लगाने आप एक वर्ग आप jQuery के साथ सीधे सीएसएस सेट कर सकते हैं उपयोग करने के लिए नहीं करना चाहते हैं चाहता है कर रहे हैं।

मान लीजिए कि आपकी मेज टैग है: <table id="tb">..., तो आप सिर्फ इस प्रकार अपने html सेट करने के लिए:

<head> 
<script language="javascript" type="text/javascript" src="jquery-min.js"/> 
</head> 

<body> 
    <script language="javascript" type="text/javascript"> 
    $(document).ready(function() { 
     $("#tb tr:odd").css("background-color", "#F4F4F8"); 
    }); 
    </script> 

    <table id="tb"> 
     <tr><th>Id</th><th>Name</th></tr> 
     <tr><td>1</td><td>Junior</td></tr> 
     <!--more rows here... --> 
    </table> 
</body>