Rendern wirklich seltsam, dies.HTML-Tabelle nicht korrekt in IE9
Ich verwende eine asp:Repeater
eine HTML-Tabelle zu erstellen, etwa so:
Markup:
<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>
VB:
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
Dies zeigt in Firefox und Chrome und die meiste Zeit in IE. Allerdings verhält sich IE manchmal bei größeren Tabellen (50+ Zeilen) merkwürdig. Es erscheint eine leere Zelle ...
... hinzuzufügen, aber es gibt nichts in der HTML- ich eingecheckt haben die Entwickler-Tools. Die falsche Zeile hat bis auf den Zellentext ein identisches Markup zu den richtigen Zeilen. Wenn ich die falsche Zeile lösche, wird stattdessen die falsche angezeigt.
Bitte kann jemand vorschlagen, warum in der Welt IE macht es so, und was ich tun kann, um es zu stoppen.
Es sieht aus wie dies ist ein HTML/CSS/IE-Problem, nicht mit ASP verwandt. Gibt es eine Chance, das Problem in einer JS Fiddle zu reproduzieren? (http://jsfiddle.net/) –
Ich habe den HTML-Code in jsfiddle kopiert. Seltsamerweise scheint es dort ok zu sein. – Urbycoz
Nur ein Gedanke - ist IE das Rendern der Seite im Quirks-Modus? Wenn Sie die Developer Tools auf der Seite öffnen, werden der Browsermodus und der Dokumentmodus auf der rechten Seite der Menüleiste angezeigt? –