2012-08-29 11 views
7

में एचटीएमएल तालिका सही ढंग से प्रस्तुत नहीं कर रही है वास्तव में यह अजीब है।आईई 9

मैं बहुत की तरह, एक HTML तालिका बनाने के लिए एक asp:Repeater उपयोग कर रहा हूँ:

मार्कअप:

<asp:Repeater ID="myRpt" runat="server"> 
    <HeaderTemplate> 
     <table id="myGrd" border="0" style="cursor:pointer;width:100%; background-color:white;" cellpadding="2" cellspacing="0"> 
      <tbody> 
    </HeaderTemplate> 
    <ItemTemplate> 
     <tr onclick="criteria.rowClicked(this);"> 
      <td style="border:solid 1px black;"> 
       <asp:Literal ID="lblName" runat="server"></asp:Literal> 
      </td> 
      <td style="border:solid 1px black;width:200px;"> 
       <asp:Literal ID="lblRange" runat="server"></asp:Literal> 
      </td> 

      <td style="display:none;" > 
       <asp:Literal ID="lblMisc" runat="server"></asp:Literal> 
      </td> 
     </tr> 
    </ItemTemplate> 
    <FooterTemplate> 
     </tbody> </table> 
    </FooterTemplate> 
</asp:Repeater> 

वीबी:

Public Sub populateGrid(ByVal ds As DataSet) 
     'ds is just made from a simple select query 
     myRpt.DataSource = ds 
     myRpt.DataBind() 
    End Sub 

Private Sub myRpt_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles myRpt.ItemDataBound 
     If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then 
      Dim lblName As Literal = e.Item.FindControl("lblName") 
      Dim lblRange As Literal = e.Item.FindControl("lblRange") 
      Dim lblMisc As Literal = e.Item.FindControl("lblMisc") 

      lblName.Text = "<font style='font-size:10pt; font-family:arial;'>" & Trim(e.Item.DataItem("Name")) & "</font>" 
      lblRange.Text = "<font style='font-size:10pt; font-family:arial;'>" & Trim(e.Item.DataItem("Range")) & "</font>" 
      lblMisc.Text = "<font style='font-size:10pt; font-family:arial;'>" & Trim(e.Item.DataItem("Miscellaneous")) & "</font>" 
     End If 
    End Sub 

यह फ़ायरफ़ॉक्स में ठीक प्रदर्शित करता है और क्रोम, और आईई में ज्यादातर समय। हालांकि कभी-कभी बड़ी टेबल (50+ पंक्तियों) के लिए आईई अजीब तरीके से व्यवहार करता है। यह एक खाली सेल को जोड़ने के लिए प्रकट होता है ...

enter image description here

... लेकिन वहाँ html- मैं डेवलपर उपकरण का उपयोग कर देख लिया है में कुछ भी नहीं है। सेल टेक्स्ट को छोड़कर, गलत पंक्ति में सही पंक्तियों के समान मार्कअप होता है। Whatsmore, अगर मैं गलत पंक्ति को हटा देता हूं, तो उपर्युक्त एक इसके बजाय गलत प्रदर्शित करना शुरू कर देता है।

कृपया कोई सुझाव दे सकता है कि क्यों पृथ्वी पर आईई इसे इस तरह प्रस्तुत कर रहा है, और मैं इसे रोकने के लिए क्या कर सकता हूं।

+2

ऐसा लगता है कि यह एक HTML/CSS/IE समस्या है, एएसपी से संबंधित नहीं है। जेएस फिडल में इस मुद्दे को दोहराने का कोई मौका? (http://jsfiddle.net/) –

+0

मैंने HTML को jsfiddle में कॉपी किया है। आश्चर्यजनक रूप से, ऐसा लगता है कि वहां ठीक है। – Urbycoz

+0

बस एक विचार - क्या आईई क्विर्क मोड में पेज प्रस्तुत कर रहा है? यदि आप पृष्ठ पर डेवलपर टूल खोलते हैं, तो मेनू बार के दाईं ओर ब्राउज़र मोड और दस्तावेज़ मोड क्या है? –

उत्तर

11

यह बड़ी तालिकाओं को प्रस्तुत करने पर IE9 के साथ एक ज्ञात बग प्रतीत होता है। टेबल डिफ ओपनिंग और क्लोजिंग टैग्स के बीच सफेद स्थान को हटाते समय समस्या हल हो गई थी। </td><td>

MSDN discussion on IE 9 rendering

+2

+1 मुझे यकीन है कि यह आईई 9 पर एक बग है। मैंने पहले यह त्रुटि देखी है और केवल आईई 9 इस व्यवहार को प्रदर्शित करता है। – Icarus

+1

+1 ऐसा सिरदर्द, लेकिन इतना आसान (यद्यपि अजीब) समाधान। बाउंटी से सम्मानित- धन्यवाद! – Urbycoz

+0

@ उर्बीकोज़, समस्या का समाधान डाल सकता है, क्योंकि लिंक "http://goo.gl/uhOSk" टूटा हुआ है –

3

यह एक ज्ञात IE9 मुद्दा, तो आप इस अपने HTML पृष्ठ में कहीं निम्नलिखित कोड डाल कर ठीक कर सकते हैं है:

$(function() { 
    var browser = $.browser; 
    if (browser.msie && browser.version.slice(0,3) == "9.0") { 
     $('table').each(function(index) { 
       var replace = $(this).html().replace(/td>\s+<td/g,'td><td'); 
       $(this).html(replace); 
     }); 
    } 
}); 
-2

मैं एक बड़ी मेज है कि विस्तार के लिए किया था जब एक घटना के लिए क्लिक करें हुई। केवल आईई 9 में हुआ, आईई 8, आईई 10, क्रोम इत्यादि में सभी ठीक थे

उपर्युक्त समाधान मेरे लिए असफल रहा, साथ ही साथ अन्य लोगों के उत्तर भी विफल रहे।

मैं मेज पर सीमाओं जोड़ा गया है और यह स्पष्ट था कि एचटीएमएल सही नहीं था:

मैं इसे इस तरह से हल किया। या तो कुछ कोलस्पेन गायब थे या कोशिकाओं को &nbsp; की आवश्यकता थी या कुछ भी हो सकता था।

मैंने यह भी देखा कि अब border=1 विशेषता तालिकाओं के साथ, क्लिक-विस्तार के साथ समस्या समाप्त हो गई थी।

तो मैंने तालिका में xltable कक्षा डाली और मेरे सीएसएस में .xltable td {border:0px solid white;} डाला।

मेरा कोड अभी भी "मान्य" नहीं है लेकिन यह काम करता है।

+0

-1 यह एक पूरी तरह से अलग समस्या है। – Urbycoz

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