ajax中的单元格之间显示的空白空间(或空格)仅在IE9浏览器中提取数据,

dhi*_*ala 8 css space html-table internet-explorer-9

正如标题所示,我有一个从数据库加载的表.首先只获取15行.稍后有办法让它显示使用下拉列表显示的15,50和100条记录.这是通过ajax获取的.如果我将获取记录计数超过59或更高,则会在随机行的单元格之间创建空白空间.它只发生在IE9浏览器中.IE浏览器版本<9很好,FireFox,Chrome,Safari也不错.这是我的第一个问题所以我不允许发布图片,所以我会在下面放一些数字表格.

|...1 .. || ..2 .. || ... 3 ... || .... 4 .... || 0.5 || ..6 .. || ..7 .. |

让我们假设上面是一行,该栏作为右边和右边的边界.我在IE9中获得的ajax获取的数据如下所示

|...1 .. || ..2 .. || ... 3 ... || .... 4 .... || 0.5 || ..6 .. || ..7 .. |

| ..1 .. | _ _ _ | .2 .. || ... 3 ... || .... 4 .... || .5.|| ..6 .. || ..7 .. |

|...1 .. || ..2 .. || ... 3 ... || .... 4 .... || 0.5 || ..6 .. || ..7 .. |

| ..1 .. || .2 .. || ... 3 ... | _ _ _ _ | .... 4 .... || .5.|| .6 .. | | ..7 .. |

|...1 .. || ..2 .. || ... 3 ... || .... 4 .... || 0.5 || ..6 .. || ..7 .. |

您会在第2行(第1列之后)和第4行(第3列之后)行中看到空格(由_'下划线'表示).我不知道,因为IE开发人员/调试工具栏没有多大帮助.效果不是随机的,因为我在刷新时或清除缓存后获得相同的空格.可能是因为ajax获取的数据与IE9呈现有关吗?有没有人面对任何这样的问题或一个接近的问题.任何帮助,将不胜感激.

csi*_*ist 4

dhiraj - MS 似乎没有关于这个 IE9 错误的任何官方声明,但我不止一次经历过它。它似乎与源代码中表格行和单元格之间的空白有关,并且仅发生在 ajax 回发后在 UpdatePanels 中呈现的表格上。我找到了解决该问题的(丑陋的)方法。

如果您使用 ListView 控件,您将能够删除表结构中的空格。不幸的是,它使您的源代码更加难以阅读,但它似乎确实解决了问题。因此,例如,如果您的原始代码如下所示:

<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
    <table>
        <asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder>
    </table>
</LayoutTemplate>
<ItemTemplate>
    <tr>
        <td><%# Eval("field1") %></td>
        <td><%# Eval("field2") %></td>
        <td><%# Eval("field3") %></td>
        <td><%# Eval("field4") %></td>
    </tr>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

您的“固定”代码需要如下所示:

<asp:ListView ID="ListView1" runat="server">
<LayoutTemplate>
    <table><asp:PlaceHolder ID="itemPlaceholder" runat="server"></asp:PlaceHolder></table>
</LayoutTemplate>
<ItemTemplate>
    <tr><td><%# Eval("field1") %></td><td><%# Eval("field2") %></td><td><%# Eval("field3") %></td><td><%# Eval("field4") %></td></tr>
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!