Пустое пространство (или пробел), отображаемое между ячейками в ajax-данных, загружаемых в таблицу только в браузере IE9, - PullRequest
8 голосов
/ 19 мая 2011

Как следует из названия, у меня есть таблица, которая загружается из базы данных. Сначала выбираются только 15 строк. Позже есть способ сделать так, чтобы 15, 50 и 100 записей отображались в раскрывающемся списке. Который извлекается через AJAX. Например, если я сделаю количество записей выборки больше 59 или выше, между ячейками в случайной строке создается пустое пространство. Это происходит только в браузерах IE9. IE Браузеры версии <9 хороши, FireFox, Chrome, Safari также хороши. Это мой первый вопрос, поэтому я не могу публиковать изображения, поэтому я добавлю несколько числовых форм ниже. </p>

|. ..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? Кто-нибудь сталкивался с такой проблемой или близкой. Любая помощь будет оценена.

Ответы [ 4 ]

4 голосов
/ 03 июня 2011

dhiraj - Похоже, нет никаких официальных заявлений об этой ошибке IE9 от MS, но я испытал это не раз.Кажется, это связано с пробелами между строками таблицы и ячейками в исходном коде и происходит только в тех таблицах, которые отображаются в UpdatePanels после обратной передачи ajax.Я нашел (некрасивое) решение этой проблемы.

Если вы используете элемент управления 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>

Ваш «фиксированный» код должен выглядеть следующим образом:

<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>

Надеюсь, это поможет!

1 голос
/ 12 декабря 2011

Я просто хотел бы добавить, что у меня точно такая же проблема.

Загрузка таблицы через AJAX привела к случайным промежуткам между элементами TD.

Код, который преобразовал эту таблицу:

echo("  <tr>")
echo("      <td>Column1</td>")
echo("      <td>Column2</td>")
echo("      <td>Column3</td>")
echo("      <td>Column4</td>")
echo("      <td>Column5</td>")
echo("  </tr>")

echo () - простая оболочка для response.write.

Как предлагается в комментариях, я просто удалил пустое место в ответе следующим образом:

echo("<tr>")
echo("<td>Column1</td>")
echo("<td>Column2</td>")
echo("<td>Column3</td>")
echo("<td>Column4</td>")
echo("<td>Column5</td>")
echo("</tr>")

Это сразу решило проблему, некрасивая разметка, но таблица теперь отображается последовательно. Исправить ошибку в IE9

0 голосов
/ 19 сентября 2013

У меня была такая же проблема.Случайный разделитель между ячейками в IE9 на панели обновления после обратной передачи.

Как и другие предлагали, удалите пробелы между элементами ячейки таблицы.Это немного уродливо, но, кажется, это работает!

из этого ...

<tr class="rpt-row-alt">
   <td>
      <%--Cell Contents --%>
   </td>
   <td>
      <%--Cell Contents --%>
   </td>
   <td>
      <%--Cell Contents --%>
   </td>
   <td>
      <%--Cell Contents --%>
   </td>
   <td>
      <%--Cell Contents --%>
   </td>
   <td>
      <%--Cell Contents --%>
   </td>
</tr>

в это ...

<tr class="rpt-row-alt">
   <td>
      <%--Cell Contents --%>
   </td><td>
      <%--Cell Contents --%>
   </td><td>
      <%--Cell Contents --%>
   </td><td>
      <%--Cell Contents --%>
   </td><td>
      <%--Cell Contents --%>
   </td><td>
      <%--Cell Contents --%>
   </td>
</tr>

Решил проблему для меня!Кажется, это только интервал между элементами данных таблицы, поэтому вам не нужно указывать строку строки в одной строке разметки.

0 голосов
/ 29 ноября 2011

Попробуйте поместить содержимое тега <td> в тег <div>

...