2010-12-04 13 views
7

<table> या <span> टैग्स के साथ एक डेटालिस्ट प्रस्तुत की गई, जो मैं नहीं चाहता हूं।एएसपी से तालिका और अवधि टैग दोनों को हटा रहा है: डेटालिस्ट

मैं RepeatLayout="Flow" निर्धारित किया है, लेकिन वह अब भी मुझे तक फैला देता है। मैंने RepeaterDirection="Horizontal" सेट किया है लेकिन यह अभी भी मुझे टेबल देता है।

मैं सभी स्पैन \ टेबल के बिना एक सरल डाटलिस्ट कैसे प्राप्त कर सकता हूं?

<asp:DataList ID="MyDataList" runat="server" RepeatLayout="Flow" RepeatDirection="Horizontal"> 
    <ItemTemplate> 
    .... 
    </ItemTemplate> 
</asp:Datalist> 

अग्रिम धन्यवाद!

उत्तर

12

आप यह बिल्कुल एक DataList नियंत्रण करने की आवश्यकता है? Repeater या यहां तक ​​कि केवल अपनी ऑब्जेक्ट्स के माध्यम से लूपिंग और मैन्युअल रूप से अपना आउटपुट प्रस्तुत करके आप एचटीएमएल पर पूर्ण नियंत्रण प्राप्त कर सकते हैं।

+0

अच्छी तरह से, यह सिर्फ डीबी से एक सूची में एक क्वेरी को पार्स कर रहा है .. मैं बस शैली को नियंत्रित करना चाहता हूं .. दोहराने का उपयोग करके मुझे स्पैन \ टेबल नहीं देते? सिर्फ सादा डेटा? – NATTO

+0

@Nat: एक दोहराने वाला आपको जो भी HTML चाहता है उसे निर्दिष्ट करने की अनुमति देता है। – Chris

+0

@ नाट: सही, एक दोहराना आपकी सामग्री को एक डातालिस्ट की तरह लपेटना नहीं चाहिए। – David

3

मैं आप इसे आसान एक repeater जो आप अपने खुद के मार्कअप सेट करने की अनुमति देगा का उपयोग करने के मिल सकती है लगता है।

मूल रूप से, एक एएसपी पुनरावर्तक बनाएं, अपने डेटा को डेटलिस्ट के समान तरीके से बाध्य करें, और "itemtemplate" टैग में अपना मार्कअप बनाएं। (इस चेतावनी स्मृति से है -। मैं अपने roving लैपटॉप पर हूँ, इसलिए वाक्य रचना की जाँच करने के दृश्य स्टूडियो की जरूरत नहीं है)

<asp:Repeater runat="server" id="MyRepeater"> 
    <HeaderTemplate><h1>My Data Title</h1></HeaderTemplate> 
    <ItemTemplate> 
     <p>Any Markup you want. This bit gets repeated</p> 
     <%#Container.DataItem("DataKeyOrColumnName")%> 
    </ItemTemplate> 
    <FooterTemplate><p>The footter (and header) only appear once.</p><p>you could use them to start and end a list or table</p></FooterTemplate> 
</asp:Repeater> 

आप केवल मार्कअप आप टेम्पलेट्स में डाल मिल जाएगा, और कुछ नहीं। यदि आपको उनकी आवश्यकता नहीं है तो आप हेडर और पाद लेख को छोड़ सकते हैं। और यदि आप बिल्कुल कोई मार्कअप नहीं चाहते हैं, तो बस अपने टेम्पलेट में कोई टैग नहीं है, डेटा सादा पाठ के रूप में बाहर आ जाएगा।

6

कभी कभी तुम (अद्यतन के माध्यम से डेटाबेस अद्यतन की तरह और आदेशों हटाएँ, एएसपी के साथ सीधे काम कर रहे: डेटा स्रोत) पुनरावर्तक उपयोग कर सकते हैं नहीं है, क्योंकि DataList अतिरिक्त संभावनाएं प्रदान करता है।

इसलिए, आप अभी भी DataList उपयोग करने की आवश्यकता है, लेकिन यह एचटीएमएल है से बचना चाहते हैं, तो आप jQuery का एक सा सब के ऊपर के रूप में मैंने किया कर सकते हैं।

aspx कोड:

<ul class="list"> 
    <asp:DataList ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" DataKeyField="photo_id" RepeatLayout="Flow" RepeatDirection="Horizontal"> 
     <ItemTemplate> 
      <li class="item" id='<%# Eval("photo_id") %>'> 
       Whatever else you need here. 
      </li> 
      </ItemTemplate> 
     </asp:DataList> 
    </ul> 

यह इस तरह HTML उत्पादन करेगा:

<span id="SomeId" style=""> 
    <span> 
     <li class="item ui-droppable" id="31349"> 
     Whatever else you need here. 
    </li> 
    </span> 
</span> 

जाहिर है 2 अवधि टैग आप की जरूरत नहीं है। उन्हें हटाने के लिए, आप पृष्ठ पर jQuery स्क्रिप्ट जोड़ सकते हैं।

<script type="text/javascript"> 
$(document).ready(function() { 
    $('.item').unwrap(); $('.item').unwrap(); 
}); 
</script> 

मेरे मामले में, मैं अनियंत्रित सूची का उत्पादन करना चाहता हूं जिसे मैं नियंत्रित करता हूं। लेकिन obvius के रूप में, आप डेटालिस्ट में HTML को बदलकर और jQuery (.item) में सही आइटम को लक्षित करके इसे किसी अन्य तरीके से कर सकते हैं।

आशा इस किसी और कि DataList कार्यक्षमता की जरूरत है और पुनरावर्तक के साथ यह नहीं कर सकते मदद करता है।

+0

इसने समस्या को हल किया धन्यवाद – Devjosh

+0

यह इस ट्रेड के लिए एक बेहतर समाधान है क्योंकि ओपी ने '' का उपयोग करके 'br' और' span' को हटाने का तरीका पूछा है, और हर कोई अन्य के लिए जवाब देता है '' का उपयोग करने के लिए स्विच करने के लिए ओपी। – Pegues

0

क्योंकि मैं शीर्षक में <Table> और पाद टेम्पलेट्स में </table> उपयोग कर रहा था मैं इस त्रुटि हो रही थी, मैं उस पदच्युत, और मैं एक खाका पर एक पूरी तालिका का इस्तेमाल किया और यह हो रही है बंद हो जाता है अवांछित टैग।

0

इस रूप में इस समस्या को आप कर सकते हैं के लिए गूगल पर शीर्ष परिणामों में से एक है निम्नलिखित:

आप Datlist नियंत्रण की जरूरत है आप संपत्ति RepeatLayout = "फ्लो"

anwser सेट करना होगा यहां पाया गया था: http://forums.asp.net/t/1388759.aspx?Datalist+without+table+