2010-10-25 12 views

उत्तर

24

asp:Table इन तत्वों का समर्थन नहीं करता है।

अद्यतन: jameh's answer का पता चलता है के रूप में, वाक्य ऊपर पूरी तरह से गलत है: TableSection संपत्ति नियंत्रित करने के लिए एक भी पंक्ति तालिका के हेडर, शरीर या पाद लेख में चला जाता है या नहीं।

उसके जवाब पर विस्तार से बता दें यह, तुम भी अपने मार्कअप में TableSection संपत्ति की स्थापना करके एलान के तौर पर इस लक्ष्य को हासिल कर सकते हैं लगता है के पीछे कोड के बिना:

<asp:Table id="yourId" runat="server"> 
    <asp:TableHeaderRow TableSection="TableHeader"> 
     <!-- ... --> 
    </asp:TableHeaderRow> 
    <asp:TableRow> 
     <!-- 'TableSection' defaults to 'TableRowSection.TableBody'. --> 
     <!-- ... --> 
    </asp:TableRow> 
    <asp:TableRow TableSection="TableFooter"> 
     <!-- ... --> 
    </asp:TableRow> 
</asp:Table> 

, मूल अब विवादास्पद उत्तर निम्नानुसार है:

आप वा बजाय HtmlTable वर्ग की कोशिश करने NT:

<table id="yourId" runat="server"> 
    <thead> 
     . 
     . 
     . 
    </thead> 
    <tbody> 
     . 
     . 
     . 
    </tbody> 
</table> 
+0

इस एएसपी: टेबल क्या अच्छा है? क्या मैं सी # कोड के साथ प्रोग्रामिंग रूप से एचटीएमएलटेबल बना सकता हूं? – Primoz

+1

हां, [आप कर सकते हैं] (http://msdn.microsoft.com/en-us/library/wwhe0at8%28v=VS.80%29.aspx), भले ही वाक्यविन्यास शायद कम स्पष्ट हो। –

+1

जिज्ञासा से, यह एएसपी क्या है: टेबल? – Primoz

18

फ्रेडेरिक का जवाब सही नहीं है। एएसपी: तालिका वास्तव में <tbody> और <thead> टैग का समर्थन करती है, लेकिन एचटीएमएलटेबल की तुलना में कम स्पष्ट फैशन में।

UseAccessibleHeader तालिकाओं के लिए डिफ़ॉल्ट है, जो आपके हेडर पंक्तियों <td> के बजाय <th> के साथ ठीक से रेंडर किया जाएगा तरह से सही है, लेकिन <tbody> और <thead> टैग प्राप्त करने के लिए, तो आप सिर्फ Page_Load पर कुछ वूडू स्थापित करने के लिए मिला है और जब आप किया है कोडबेहिंड में अपनी पंक्तियां बनाना/डालना।

यहाँ मेरी उदाहरण एएसपी है: टेबल मार्कअप:

<asp:Table runat="server" ID="tblGeneral"> 
    <asp:TableHeaderRow ID="TableHeaderRow1" runat="server"> 
     <asp:TableHeaderCell ID="TableHeaderCell1" runat="server">Column 1</asp:TableHeaderCell> 
     <asp:TableHeaderCell ID="TableHeaderCell2" runat="server">Column 2</asp:TableHeaderCell> 
     <asp:TableHeaderCell ID="TableHeaderCell3" runat="server">Column 3</asp:TableHeaderCell> 
     <asp:TableHeaderCell ID="TableHeaderCell4" runat="server">Column 4</asp:TableHeaderCell> 
     <asp:TableHeaderCell ID="TableHeaderCell5" runat="server">Column 5</asp:TableHeaderCell> 
    </asp:TableHeaderRow> 
</asp:Table> 

Page_Load में, हम यह दर्शाते हैं कि हमारे TableHeaderRow1 एक TableHeader होना चाहिए:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    TableHeaderRow1.TableSection = TableRowSection.TableHeader  
End Sub 

और अंत में, अपने कार्य में ही कहा में पंक्तियों सम्मिलित करता है तालिका, आपको बस यह निर्दिष्ट करना होगा कि आपके द्वारा जोड़े गए प्रत्येक पंक्ति का TableRowSection एक टेबलबॉडी है:

Dim row As TableRow 
Dim dvRow As Data.DataRowView 

For Each dvRow In dv 
    row = New TableRow 
    row.TableSection = TableRowSection.TableBody 'THIS is the important bit 
    cell = New TableCell 
    Col1Stuff = New Label 
    Col1Stuff.Text = "Blah" 
    cell.Controls.Add(Col1Stuff) 
    row.Cells.Add(cell) 

    ... 

tblGeneral.Rows.Add(row) 
Next 

आप TableRowSection property पर और अधिक पढ़ सकते हैं; ऐसा लगता है कि आप इसे अपने एएसपी के साथ भी पूरा कर सकते हैं: टेबल टेम्पलेट।

+0

आप सही हैं, मैं सही खड़ा हूं। चूंकि मैं आपके उत्तर को आपके पक्ष में नहीं हटा सका (स्वीकृत उत्तरों को हटाया नहीं जा सकता है), मैंने इसे आपके द्वारा प्रदान की गई जानकारी के साथ तय किया है। आशा है कि आपको कोई फर्क नहीं पड़ता :) –

+2

कोई समस्या नहीं, हमेशा गुप्त एएसपी.नेट दुनिया में अंतर्दृष्टि साझा करने में खुशी हुई। ;-) – jfsaliba

+1

क्या गतिशील रूप से एकाधिक टीबीडी बनाना संभव है? – user1

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