Leeres Leerzeichen (oder Leerzeichen), das zwischen Zellen in ajax angezeigt wird, holte Daten, die nur im IE9-Browser in die Tabelle eingegeben wurden,

8

Wie der Titel andeutet, habe ich eine Tabelle, die aus der Datenbank geladen wird. Zuerst werden nur 15 Zeilen abgerufen. Später gibt es eine Möglichkeit, 15, 50 und 100 Datensätze anzuzeigen, die über die Dropdown-Liste angezeigt werden. Welches über Ajax abgerufen wird. Einige, wenn ich den Abrufdatensatz mehr als 59 oder höher mache, wird zwischen den Zellen in der zufälligen Zeile ein leerer Speicherplatz erzeugt. Es passiert nur in IE9-Browsern. IE Browserversion & lt; 9 sind gut, FireFox, Chrome, Safari sind auch gut. Dies ist meine erste Frage, deshalb darf ich das Bild nicht posten, daher werde ich unten einige numerische Formulare einfügen.

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

Nehmen wir an, das obige ist eine Zeile, die Leiste als Grenze rechts und links. Was ich in IE9 Ajax Daten geholt bekomme, ist etwas wie unten

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

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

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

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

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

Sie sehen das Leerzeichen (dargestellt durch _ 'Unterstrich') in der Zeile 2. (nach 1. Spalte) und 4. (nach 3. Spalte). Ich bekomme keine Idee, da die IE-Entwickler / Debugger-Toolbar nicht viel hilft. Der Effekt ist nicht zufällig, da ich denselben leeren Raum zwischen der Zelle bei der Aktualisierung oder nach dem Löschen des Zwischenspeichers bekomme. Könnte es wegen ajax abgerufenen Daten etwas mit IE9 zu tun haben, es zu rendern? War jemand mit einem solchen oder einem ähnlichen Problem konfrontiert? Jede Hilfe wäre willkommen.

    
dhiraj 19.05.2011, 03:42
quelle

4 Antworten

4

dhiraj - Es scheint keine offizielle Aussage über diesen IE9 Bug von MS zu geben, aber ich habe es mehr als einmal erlebt. Es scheint mit dem Leerzeichen zwischen Tabellenzeilen und Zellen im Quellcode zusammenzuhängen und tritt nur bei Tabellen auf, die nach einem Ajax-Postback in UpdatePanels gerendert werden. Ich habe eine (hässliche) Lösung für das Problem gefunden.

Wenn Sie ein ListView-Steuerelement verwenden, können Sie den Leerraum in Ihrer Tabellenstruktur entfernen. Leider macht es Ihren Quellcode unlesbarer, aber es scheint das Problem zu beheben. Also zum Beispiel, wenn Ihr ursprünglicher Code so aussieht:

%Vor%

Ihr "fester" Code müsste so aussehen:

%Vor%

Hoffe, das hilft!

    
csigrist 03.06.2011 17:54
quelle
1

Ich möchte nur hinzufügen, dass ich genau das gleiche Problem hatte.

Das Laden einer Tabelle in Via AJAX führte zu zufälligen Lücken zwischen TD-Elementen.

Code, der diese Tabelle gerendert hat, war:

%Vor%

echo () ist ein einfacher Wrapper für response.write.

Wie in den Kommentaren hier vorgeschlagen, habe ich einfach den Leerraum in der Antwort wie folgt entfernt:

%Vor%

Das hat das Problem sofort gelöst, hässliches Markup, aber die Tabelle wird jetzt konsistent gerendert. Deffo ein Fehler in IE9

    
HeavenCore 12.12.2011 17:05
quelle
0

Versuchen Sie, den Inhalt des Tags <td> im Tag <div>

zu platzieren     
Shvarc 29.11.2011 16:32
quelle
0

Ich hatte das gleiche Problem. Zufälliger Abstandhalter zwischen Zellen in IE9 in einem Update-Panel nach einem Postback.

Entfernen Sie, wie von anderen vorgeschlagen, die Leerzeichen zwischen den Tabellenzellenelementen. Es ist ein bisschen hässlich, aber es scheint zu funktionieren!

von diesem ...

%Vor%

dazu ...

%Vor%

Das Problem für mich gelöst! Es scheint nur der Abstand zwischen den Tabellendatenelementen zu sein, so dass Sie nicht die gesamte Tabellenzeile in einer Zeile der Markierung haben müssen.

    
Stuart 19.09.2013 07:53
quelle