真的很奇怪,这个.
我正在使用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在这个地方渲染它,以及我能做些什么来阻止它.