Realmente raro, esto.La tabla HTML no se representa correctamente en IE9
estoy usando un asp:Repeater
para crear una tabla HTML, así:
de marcado:
<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
Esto muestra bien en Firefox y Chrome, y la mayoría de las veces en IE. Sin embargo, a veces, para tablas más grandes (más de 50 filas) IE se comporta de manera extraña. Parece que añadir una celda en blanco ...
... pero no hay nada en el en HTML He comprobado el uso de las herramientas de desarrollo. La fila incorrecta tiene marcado idéntico a las filas correctas, a excepción del texto de la celda. Es más, si borro la fila incorrecta, la que está arriba comienza a mostrar mal.
Por favor alguien puede sugerir por qué demonios IE lo está renderizando así, y qué puedo hacer para detenerlo.
Parece que se trata de un problema de HTML/CSS/IE, no relacionado con ASP. ¿Alguna posibilidad de que puedas replicar el problema en un violín JS? (http://jsfiddle.net/) –
He copiado el HTML en jsfiddle. Extrañamente, parece rendir bien allí. – Urbycoz
Solo un pensamiento: ¿IE está renderizando la página en el modo Quirks? Si abre las Herramientas de desarrollador en la página, ¿qué tipo de Navegador y Modo de documento se muestran a la derecha de la barra de menú? –