asp.net – 在IE9中HTML表格无法正确呈现

前端之家收集整理的这篇文章主要介绍了asp.net – 在IE9中HTML表格无法正确呈现前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
真的很奇怪,这个.

我正在使用asp:Repeater创建一个HTML表,如下所示:

标记

<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

这在Firefox和Chrome中显示得很好,大多数时候在IE中显示.但是有时对于较大的表(50行),IE表现得很奇怪.它似乎添加了一个空白单元格……

…但HTML中没有任何内容 – 我使用开发人员工具进行了检查.不正确的行与正确的行具有相同的标记,但单元格文本除外.更重要的是,如果我删除了不正确的行,那么它上面的那行开始显示错误.

请有人建议为什么IE在这个地方渲染它,以及我能做些什么来阻止它.

解决方法

这似乎是IE9渲染大型表时的一个已知错误.在删除表格def开始和结束标记之间的空白时,问题得到解决,例如. < / TD>< TD>

MSDN discussion on IE 9 rendering

猜你在找的asp.Net相关文章